"-m" option added to cg-diff, cg-log and cg-mkpatch This option takes two optional parameters, branch2 and branch1, and shows the changes in branch2 not yet merged to branch1. Branch2 defaults to origin and branch1 to HEAD. Signed-off-by: Catalin Marinas --- commit 1a9bf2d3a0478344ae4019ac0725426627c32658 tree 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75 parent fa6e9eb368e949e78c4e66217461cf624b52b0a2 author Catalin Marinas Sun, 15 May 2005 09:25:49 +0100 committer Catalin Marinas Sun, 15 May 2005 09:25:49 +0100 cg-diff | 19 +++++++++++++++++++ cg-help | 6 +++--- cg-log | 19 +++++++++++++++++++ cg-mkpatch | 19 +++++++++++++++++++ 4 files changed, 60 insertions(+), 3 deletions(-) Index: cg-diff =================================================================== --- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-diff (mode:100755) +++ 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75/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 [branch2] [branch1] shows the changes in branch2 (defaulting to +# origin) not yet merged to branch1 (defaulting to HEAD) +# # Outputs a diff converting the first tree to the second one. . ${COGITO_LIB}cg-Xlib @@ -31,6 +34,22 @@ parent=1 fi +if [ "$1" = "-m" ]; then + branch=HEAD + id2=origin + shift + if [ "$1" ]; then + id2=$1 + shift + fi + if [ "$1" ]; then + branch=$1 + shift + fi + id1=$(git-merge-base "$branch" "$id2") + [ "$id1" ] || die "Unable to determine the merge base" +fi + if [ "$1" = "-r" ]; then shift id1=$(echo "$1": | cut -d : -f 1) Index: cg-help =================================================================== --- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-help (mode:100755) +++ 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75/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] [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] [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] [BNAME]] cg-patch < patch on stdin cg-pull [BNAME] cg-restore [FILE]... Index: cg-log =================================================================== --- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-log (mode:100755) +++ 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75/cg-log (mode:100755) @@ -22,6 +22,9 @@ # (HEAD by default), or id1:id2 representing an (id1;id2] range # of commits to show. # +# -m [branch2] [branch1] shows the changes in branch2 (defaulting to +# origin) not yet merged to branch1 (defaulting to HEAD) +# # The rest of arguments are took as filenames; cg-log then displays # only changes in those files. @@ -94,6 +97,22 @@ log_start= log_end= +if [ "$1" = "-m" ]; then + branch=HEAD + log_end=origin + shift + if [ "$1" ]; then + log_end=$1 + shift + fi + if [ "$1" ]; then + branch=$1 + shift + fi + log_start=$(git-merge-base "$branch" "$log_end") + [ "$log_start" ] || die "Unable to determine the merge base" +fi + if [ "$1" = "-r" ]; then shift log_start="$1" Index: cg-mkpatch =================================================================== --- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-mkpatch (mode:100755) +++ 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75/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 [branch2] [branch1] shows the changes in branch2 (defaulting to +# origin) not yet merged to branch1 (defaulting to HEAD) . ${COGITO_LIB}cg-Xlib @@ -65,6 +68,22 @@ log_start= log_end= +if [ "$1" = "-m" ]; then + branch=HEAD + log_end=origin + shift + if [ "$1" ]; then + log_end=$1 + shift + fi + if [ "$1" ]; then + branch=$1 + shift + fi + log_start=$(git-merge-base "$branch" "$log_end") + [ "$log_start" ] || die "Unable to determine the merge base" +fi + if [ "$1" = "-r" ]; then shift log_start="$1"