* [PATCH cogito] "cg-whatsnew" command
@ 2005-05-14 10:58 Catalin Marinas
2005-05-14 11:09 ` Petr Baudis
0 siblings, 1 reply; 8+ messages in thread
From: Catalin Marinas @ 2005-05-14 10:58 UTC (permalink / raw)
To: git
[-- Attachment #1: Type: text/plain, Size: 212 bytes --]
This patch adds a simple command that shows the unmerged changes on a
branch. I find it quite useful to be able to see the diff or the log
before merging (gnuarch has something similar with "missing").
Catalin
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch-cg-whatsnew --]
[-- Type: text/x-patch, Size: 3243 bytes --]
Added the "cg-whatsnew" command
The command shows the unmerged changes on a branch (defaulting to
"origin") as either a diff, log or patch.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
---
commit e396c64c7f84c45a1360d34bcb6092b62183df7d
tree c143a31ed694000b705c5019bb10ec3b3f911344
parent fa6e9eb368e949e78c4e66217461cf624b52b0a2
author Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Sat, 14 May 2005 11:47:52 +0100
committer Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Sat, 14 May 2005 11:47:52 +0100
Makefile | 3 +-
cg-help | 1
cg-whatsnew | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 66 insertions(+), 1 deletion(-)
Index: Makefile
===================================================================
--- de641904363cd3759f132ee7c0dfaf8a2ee58388/Makefile (mode:100644)
+++ c143a31ed694000b705c5019bb10ec3b3f911344/Makefile (mode:100644)
@@ -49,7 +49,8 @@
SCRIPT= commit-id tree-id parent-id cg-add cg-admin-lsobj cg-admin-uncommit \
cg-branch-add cg-branch-ls cg-cancel cg-clone cg-commit cg-diff \
cg-export cg-help cg-init cg-log cg-ls cg-merge cg-mkpatch cg-patch \
- cg-pull cg-restore cg-rm cg-seek cg-status cg-tag cg-tag-ls cg-update
+ cg-pull cg-restore cg-rm cg-seek cg-status cg-tag cg-tag-ls cg-update \
+ cg-whatsnew
LIB_SCRIPT=cg-Xlib cg-Xdiffdo cg-Xmergefile
Index: cg-help
===================================================================
--- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-help (mode:100755)
+++ c143a31ed694000b705c5019bb10ec3b3f911344/cg-help (mode:100755)
@@ -44,6 +44,7 @@
cg-tag-ls
cg-update [BNAME]
cg-version
+ cg-whatsnew [-n] [-l | -m] [BNAME]
Advanced (low-level or dangerous) commands:
cg-admin-lsobj [OBJTYPE]
Index: cg-whatsnew
===================================================================
--- /dev/null (tree:de641904363cd3759f132ee7c0dfaf8a2ee58388)
+++ c143a31ed694000b705c5019bb10ec3b3f911344/cg-whatsnew (mode:100755)
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+#
+# Shows the unmerged changes on a branch
+# Copyright (c) Catalin Marinas, 2005
+#
+# Takes a parameter identifying the branch (defaulting to "origin").
+# Optional "-n" parameter specifies not to pull the changes from the branch.
+#
+# By default, shows the unmerged diff of the branch.
+# Optional "-l" parameter specifies to show the log instead of the diff
+# Optional "-m" parameter specifies to show the mkpatch instead of the diff
+
+. ${COGITO_LIB:-/home/cmarinas/lib/cogito/}cg-Xlib
+
+head=$(commit-id)
+show_cmd=cg-diff
+
+do_not_pull=
+if [ "$1" = "-n" ]; then
+ shift
+ do_not_pull=1
+fi
+
+while [ "$1" ]; do
+ case "$1" in
+ -n)
+ do_not_pull=1
+ shift
+ ;;
+ -l)
+ show_cmd=cg-log
+ shift
+ ;;
+ -m)
+ show_cmd=cg-mkpatch
+ shift
+ ;;
+ -*)
+ die "Unknown option: $1"
+ ;;
+ *)
+ break
+ ;;
+ esac
+done
+
+if [ "$1" ]; then
+ branchname="$1"
+else
+ branchname=origin
+fi
+
+[ "$do_not_pull" ] || cg-pull $branchname
+
+branch=$(commit-id "$branchname") || exit 1
+base=$(git-merge-base "$head" "$branch")
+[ "$base" ] || die "Unable to determine the merge base"
+
+if [ "$base" = "$branch" ]; then
+ echo "Branch already fully merged" >&2
+else
+ $show_cmd -r $base:$branch
+fi
^ permalink raw reply [flat|nested] 8+ messages in thread* Re: [PATCH cogito] "cg-whatsnew" command 2005-05-14 10:58 [PATCH cogito] "cg-whatsnew" command Catalin Marinas @ 2005-05-14 11:09 ` Petr Baudis 2005-05-15 8:29 ` Catalin Marinas 0 siblings, 1 reply; 8+ messages in thread From: Petr Baudis @ 2005-05-14 11:09 UTC (permalink / raw) To: Catalin Marinas; +Cc: git Dear diary, on Sat, May 14, 2005 at 12:58:04PM CEST, I got a letter where Catalin Marinas <catalin.marinas@arm.com> told me that... > This patch adds a simple command that shows the unmerged changes on a > branch. I find it quite useful to be able to see the diff or the log > before merging (gnuarch has something similar with "missing"). I'd prefer this to be functionality builtin to cg-log and cg-mkpatch. Perhaps some cg-log -m $branch2 [$branch1] to show stuff in branch2 not yet merged to branch1. -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH cogito] "cg-whatsnew" command 2005-05-14 11:09 ` Petr Baudis @ 2005-05-15 8:29 ` Catalin Marinas 2005-05-15 17:36 ` Matthias Urlichs 0 siblings, 1 reply; 8+ messages in thread From: Catalin Marinas @ 2005-05-15 8:29 UTC (permalink / raw) To: Petr Baudis; +Cc: git [-- Attachment #1: Type: text/plain, Size: 693 bytes --] Petr Baudis <pasky@ucw.cz> wrote: > Dear diary, on Sat, May 14, 2005 at 12:58:04PM CEST, I got a letter > where Catalin Marinas <catalin.marinas@arm.com> told me that... >> This patch adds a simple command that shows the unmerged changes on a >> branch. I find it quite useful to be able to see the diff or the log >> before merging (gnuarch has something similar with "missing"). > > I'd prefer this to be functionality builtin to cg-log and cg-mkpatch. > Perhaps some > > cg-log -m $branch2 [$branch1] > > to show stuff in branch2 not yet merged to branch1. See the attached patch. Let me know if you want it implemented differently. I also added the "-m" option to cg-diff. -- Catalin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: patch-m-option --] [-- Type: text/x-patch, Size: 4489 bytes --] "-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 <catalin.marinas@arm.com> --- commit 1a9bf2d3a0478344ae4019ac0725426627c32658 tree 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75 parent fa6e9eb368e949e78c4e66217461cf624b52b0a2 author Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Sun, 15 May 2005 09:25:49 +0100 committer Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> 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" ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH cogito] "cg-whatsnew" command 2005-05-15 8:29 ` Catalin Marinas @ 2005-05-15 17:36 ` Matthias Urlichs 2005-05-16 8:33 ` Catalin Marinas 0 siblings, 1 reply; 8+ messages in thread From: Matthias Urlichs @ 2005-05-15 17:36 UTC (permalink / raw) To: git Hi, Catalin Marinas wrote: > + cg-diff [-p] [-r FROM_ID[:TO_ID]] [-m [BNAME] [BNAME]] [FILE]... That should be [-m [BNAME [BNAME]]] though I'd suggest something more mnemonic than two BNAMEs. -- Matthias Urlichs | {M:U} IT Design @ m-u-it.de | smurf@smurf.noris.de ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH cogito] "cg-whatsnew" command 2005-05-15 17:36 ` Matthias Urlichs @ 2005-05-16 8:33 ` Catalin Marinas 2005-05-18 22:30 ` Petr Baudis 0 siblings, 1 reply; 8+ messages in thread From: Catalin Marinas @ 2005-05-16 8:33 UTC (permalink / raw) To: Matthias Urlichs; +Cc: git [-- Attachment #1: Type: text/plain, Size: 283 bytes --] Matthias Urlichs <smurf@smurf.noris.de> wrote: >> + cg-diff [-p] [-r FROM_ID[:TO_ID]] [-m [BNAME] [BNAME]] [FILE]... > > That should be > > [-m [BNAME [BNAME]]] You are right. > though I'd suggest something more mnemonic than two BNAMEs. Another try, see attached. -- Catalin [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: patch-m-option --] [-- Type: text/x-patch, Size: 4529 bytes --] "-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 <catalin.marinas@arm.com> --- commit 54c787f373557940617bca2c206c731d04c7e07b tree d46bb25bdadb369e6cbf28ca25ffaeb4b41f7381 parent fa6e9eb368e949e78c4e66217461cf624b52b0a2 author Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Mon, 16 May 2005 09:30:08 +0100 committer Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Mon, 16 May 2005 09:30:08 +0100 cg-diff | 19 +++++++++++++++++++ cg-help | 8 +++++--- cg-log | 19 +++++++++++++++++++ cg-mkpatch | 19 +++++++++++++++++++ 4 files changed, 62 insertions(+), 3 deletions(-) Index: cg-diff =================================================================== --- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-diff (mode:100755) +++ d46bb25bdadb369e6cbf28ca25ffaeb4b41f7381/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) +++ d46bb25bdadb369e6cbf28ca25ffaeb4b41f7381/cg-help (mode:100755) @@ -26,14 +26,16 @@ 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 [SRC_BNAME [DST_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 [SRC_BNAME [DST_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 [SRC_BNAME [DST_BNAME]]] cg-patch < patch on stdin cg-pull [BNAME] cg-restore [FILE]... Index: cg-log =================================================================== --- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-log (mode:100755) +++ d46bb25bdadb369e6cbf28ca25ffaeb4b41f7381/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) +++ d46bb25bdadb369e6cbf28ca25ffaeb4b41f7381/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" ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH cogito] "cg-whatsnew" command 2005-05-16 8:33 ` Catalin Marinas @ 2005-05-18 22:30 ` Petr Baudis 2005-05-18 23:50 ` Matthias Urlichs 2005-05-19 8:24 ` Catalin Marinas 0 siblings, 2 replies; 8+ messages in thread From: Petr Baudis @ 2005-05-18 22:30 UTC (permalink / raw) To: Catalin Marinas; +Cc: Matthias Urlichs, git Dear diary, on Mon, May 16, 2005 at 10:33:44AM CEST, I got a letter where Catalin Marinas <catalin.marinas@arm.com> told me that... > Matthias Urlichs <smurf@smurf.noris.de> wrote: > >> + cg-diff [-p] [-r FROM_ID[:TO_ID]] [-m [BNAME] [BNAME]] [FILE]... > > > > That should be > > > > [-m [BNAME [BNAME]]] > > You are right. > > > though I'd suggest something more mnemonic than two BNAMEs. > > Another try, see attached. Unfortunately I can't comment on it well when it's not either in the body or as text/plain attachment. I think the -m usage doesn't make much sense now. What about dropping branch1 and instead using what the user passed as the -r argument? -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH cogito] "cg-whatsnew" command 2005-05-18 22:30 ` Petr Baudis @ 2005-05-18 23:50 ` Matthias Urlichs 2005-05-19 8:24 ` Catalin Marinas 1 sibling, 0 replies; 8+ messages in thread From: Matthias Urlichs @ 2005-05-18 23:50 UTC (permalink / raw) To: Petr Baudis; +Cc: Catalin Marinas, git Hi, Petr Baudis: > Unfortunately I can't comment on it well when it's not either in the > body or as text/plain attachment. It was a text/x-patch attachment. What's the problem? If nothing else: save it, read it in, s/^/> /. *shrug* At least, this way there won't be any word-wrapping by overzealous email programs ... -- Matthias Urlichs | {M:U} IT Design @ m-u-it.de | smurf@smurf.noris.de ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH cogito] "cg-whatsnew" command 2005-05-18 22:30 ` Petr Baudis 2005-05-18 23:50 ` Matthias Urlichs @ 2005-05-19 8:24 ` Catalin Marinas 1 sibling, 0 replies; 8+ messages in thread From: Catalin Marinas @ 2005-05-19 8:24 UTC (permalink / raw) To: Petr Baudis; +Cc: Matthias Urlichs, git [-- Attachment #1: Type: text/plain, Size: 491 bytes --] Petr Baudis <pasky@ucw.cz> wrote: > Unfortunately I can't comment on it well when it's not either in the > body or as text/plain attachment. It was attached as text/x-patch. > I think the -m usage doesn't make much sense now. What about dropping > branch1 and instead using what the user passed as the -r argument? See attached (text/plain this time). It is also possible not to give any argument to -m and use the -r ones entirely (not implemented in the attached patch). -- Catalin [-- Attachment #2: patch-m-option --] [-- Type: text/plain, Size: 3814 bytes --] "-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 <catalin.marinas@arm.com> --- 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2005-05-19 8:26 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-05-14 10:58 [PATCH cogito] "cg-whatsnew" command Catalin Marinas 2005-05-14 11:09 ` Petr Baudis 2005-05-15 8:29 ` Catalin Marinas 2005-05-15 17:36 ` Matthias Urlichs 2005-05-16 8:33 ` Catalin Marinas 2005-05-18 22:30 ` Petr Baudis 2005-05-18 23:50 ` Matthias Urlichs 2005-05-19 8:24 ` Catalin Marinas
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).