"-m" option added to cg-diff, cg-log and cg-mkpatch This option takes a branch name as an optional parameter and shows the changes on this branch not yet merged to HEAD or to the first argument passed to "-r". Signed-off-by: Catalin Marinas --- Index: cg-diff =================================================================== --- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-diff (mode:100755) +++ uncommitted/cg-diff (mode:100755) @@ -14,6 +14,9 @@ # -p instead of one ID denotes a parent commit to the specified ID # (which must not be a tree, obviously). # +# -m [branch] shows the changes in branch (defaulting to origin) +# not yet merged to HEAD (or the first argument passed to -r) +# # Outputs a diff converting the first tree to the second one. . ${COGITO_LIB}cg-Xlib @@ -49,6 +52,18 @@ id1=$(parent-id "$id2" | head -n 1) fi +if [ "$1" = "-m" ]; then + [ "$id1" = " " ] && id1=HEAD + id2=origin + shift + if [ "$1" ]; then + id2=$1 + shift + fi + id1=$(git-merge-base "$id1" "$id2") + [ "$id1" ] || die "Unable to determine the merge base" +fi + filter= if [ "$*" ]; then Index: cg-help =================================================================== --- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-help (mode:100755) +++ uncommitted/cg-help (mode:100755) @@ -26,14 +26,14 @@ cg-cancel cg-clone [-s] SOURCE_LOC [DESTDIR] cg-commit [-m"Commit message"]... [-e | -E] [FILE]... < log message - cg-diff [-p] [-r FROM_ID[:TO_ID]] [FILE]... + cg-diff [-p] [-r FROM_ID[:TO_ID]] [-m [BNAME]] [FILE]... cg-export DEST [TREE_ID] cg-help [COMMAND] cg-init - cg-log [-c] [-f] [-r FROM_ID[:TO_ID]] [FILE]... + cg-log [-c] [-f] [-r FROM_ID[:TO_ID]] [-m [BNAME]] [FILE]... cg-ls [TREE_ID] cg-merge [-c] [-b BASE_ID] FROM_ID - cg-mkpatch [-s] [-r FROM_ID[:TO_ID]] + cg-mkpatch [-s] [-r FROM_ID[:TO_ID]] [-m [BNAME]] cg-patch < patch on stdin cg-pull [BNAME] cg-restore [FILE]... Index: cg-log =================================================================== --- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-log (mode:100755) +++ uncommitted/cg-log (mode:100755) @@ -22,6 +22,9 @@ # (HEAD by default), or id1:id2 representing an (id1;id2] range # of commits to show. # +# -m [branch] shows the changes in branch (defaulting to origin) +# not yet merged to HEAD (or the first argument passed to -r) +# # The rest of arguments are took as filenames; cg-log then displays # only changes in those files. @@ -110,6 +113,18 @@ shift fi +if [ "$1" = "-m" ]; then + [ "$log_start" ] || log_start=HEAD + log_end=origin + shift + if [ "$1" ]; then + log_end=$1 + shift + fi + log_start=$(git-merge-base "$log_start" "$log_end") + [ "$log_start" ] || die "Unable to determine the merge base" +fi + if [ "$log_end" ]; then id1="$(commit-id $log_start)" || exit 1 id2="$(commit-id $log_end)" || exit 1 Index: cg-mkpatch =================================================================== --- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-mkpatch (mode:100755) +++ uncommitted/cg-mkpatch (mode:100755) @@ -9,6 +9,9 @@ # # Takes an -r followed with ID defaulting to HEAD, or id1:id2, forming # a range (id1;id2]. (Use "id1:" to take just everything from id1 to HEAD.) +# +# -m [branch] shows the changes in branch (defaulting to origin) +# not yet merged to HEAD (or the first argument passed to -r) . ${COGITO_LIB}cg-Xlib @@ -80,6 +83,18 @@ shift fi +if [ "$1" = "-m" ]; then + [ "$log_start" ] || log_start=HEAD + log_end=origin + shift + if [ "$1" ]; then + log_end=$1 + shift + fi + log_start=$(git-merge-base "$log_start" "$log_end") + [ "$log_start" ] || die "Unable to determine the merge base" +fi + if [ "$log_end" ]; then id1=$(commit-id $log_start) || exit 1 id2=$(commit-id $log_end) || exit 1