{"thread":{"id":"620","subject":"[PATCH cogito] \"cg-whatsnew\" command","startedAt":"2005-05-14T10:58:04Z","lastAt":"2005-05-19T08:24:20Z","messageCount":8,"participants":["Catalin Marinas","Petr Baudis","Matthias Urlichs"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"3300","messageId":"tnx64xm5b2b.fsf@arm.com","threadId":"620","inReplyTo":null,"subject":"[PATCH cogito] \"cg-whatsnew\" command","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@arm.com","sentAt":"2005-05-14T10:58:04Z","receivedAt":"2005-05-14T10:58:04Z","isPatch":true,"sender":{"key":"catalin.marinas@arm.com","avatar":null},"body":"This patch adds a simple command that shows the unmerged changes on a\nbranch. I find it quite useful to be able to see the diff or the log\nbefore merging (gnuarch has something similar with \"missing\").\n\nCatalin\n\n\n\nAdded the \"cg-whatsnew\" command\n\nThe command shows the unmerged changes on a branch (defaulting to \n\"origin\") as either a diff, log or patch.\n\nSigned-off-by: Catalin Marinas <catalin.marinas@arm.com>\n\n---\ncommit e396c64c7f84c45a1360d34bcb6092b62183df7d\ntree c143a31ed694000b705c5019bb10ec3b3f911344\nparent fa6e9eb368e949e78c4e66217461cf624b52b0a2\nauthor Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Sat, 14 May 2005 11:47:52 +0100\ncommitter Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Sat, 14 May 2005 11:47:52 +0100\n\n Makefile    |    3 +-\n cg-help     |    1 \n cg-whatsnew |   63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n 3 files changed, 66 insertions(+), 1 deletion(-)\n\nIndex: Makefile\n===================================================================\n--- de641904363cd3759f132ee7c0dfaf8a2ee58388/Makefile  (mode:100644)\n+++ c143a31ed694000b705c5019bb10ec3b3f911344/Makefile  (mode:100644)\n@@ -49,7 +49,8 @@\n SCRIPT=\tcommit-id tree-id parent-id cg-add cg-admin-lsobj cg-admin-uncommit \\\n \tcg-branch-add cg-branch-ls cg-cancel cg-clone cg-commit cg-diff \\\n \tcg-export cg-help cg-init cg-log cg-ls cg-merge cg-mkpatch cg-patch \\\n-\tcg-pull cg-restore cg-rm cg-seek cg-status cg-tag cg-tag-ls cg-update\n+\tcg-pull cg-restore cg-rm cg-seek cg-status cg-tag cg-tag-ls cg-update \\\n+\tcg-whatsnew\n \n LIB_SCRIPT=cg-Xlib cg-Xdiffdo cg-Xmergefile\n \nIndex: cg-help\n===================================================================\n--- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-help  (mode:100755)\n+++ c143a31ed694000b705c5019bb10ec3b3f911344/cg-help  (mode:100755)\n@@ -44,6 +44,7 @@\n \tcg-tag-ls\n \tcg-update\t[BNAME]\n \tcg-version\n+\tcg-whatsnew\t[-n] [-l | -m] [BNAME]\n \n Advanced (low-level or dangerous) commands:\n \tcg-admin-lsobj\t[OBJTYPE]\nIndex: cg-whatsnew\n===================================================================\n--- /dev/null  (tree:de641904363cd3759f132ee7c0dfaf8a2ee58388)\n+++ c143a31ed694000b705c5019bb10ec3b3f911344/cg-whatsnew  (mode:100755)\n@@ -0,0 +1,63 @@\n+#!/usr/bin/env bash\n+#\n+# Shows the unmerged changes on a branch\n+# Copyright (c) Catalin Marinas, 2005\n+#\n+# Takes a parameter identifying the branch (defaulting to \"origin\").\n+# Optional \"-n\" parameter specifies not to pull the changes from the branch.\n+#\n+# By default, shows the unmerged diff of the branch.\n+# Optional \"-l\" parameter specifies to show the log instead of the diff\n+# Optional \"-m\" parameter specifies to show the mkpatch instead of the diff\n+\n+. ${COGITO_LIB:-/home/cmarinas/lib/cogito/}cg-Xlib\n+\n+head=$(commit-id)\n+show_cmd=cg-diff\n+\n+do_not_pull=\n+if [ \"$1\" = \"-n\" ]; then\n+\tshift\n+\tdo_not_pull=1\n+fi\n+\n+while [ \"$1\" ]; do\n+\tcase \"$1\" in\n+\t-n)\n+\t\tdo_not_pull=1\n+\t\tshift\n+\t\t;;\n+\t-l)\n+\t\tshow_cmd=cg-log\n+\t\tshift\n+\t\t;;\n+\t-m)\n+\t\tshow_cmd=cg-mkpatch\n+\t\tshift\n+\t\t;;\n+\t-*)\n+\t\tdie \"Unknown option: $1\"\n+\t\t;;\n+\t*)\n+\t\tbreak\n+\t\t;;\n+\tesac\n+done\n+\n+if [ \"$1\" ]; then\n+\tbranchname=\"$1\"\n+else\n+\tbranchname=origin\n+fi\n+\n+[ \"$do_not_pull\" ] || cg-pull $branchname\n+\n+branch=$(commit-id \"$branchname\") || exit 1\n+base=$(git-merge-base \"$head\" \"$branch\")\n+[ \"$base\" ] || die \"Unable to determine the merge base\"\n+\n+if [ \"$base\" = \"$branch\" ]; then\n+\techo \"Branch already fully merged\" >&2\n+else\n+\t$show_cmd -r $base:$branch\n+fi\n"},{"id":"3301","messageId":"20050514110941.GB3905@pasky.ji.cz","threadId":"620","inReplyTo":"tnx64xm5b2b.fsf@arm.com","subject":"Re: [PATCH cogito] \"cg-whatsnew\" command","fromName":"Petr Baudis","fromEmail":"pasky@ucw.cz","sentAt":"2005-05-14T11:09:41Z","receivedAt":"2005-05-14T11:09:41Z","isPatch":true,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Sat, May 14, 2005 at 12:58:04PM CEST, I got a letter\nwhere Catalin Marinas <catalin.marinas@arm.com> told me that...\n> This patch adds a simple command that shows the unmerged changes on a\n> branch. I find it quite useful to be able to see the diff or the log\n> before merging (gnuarch has something similar with \"missing\").\n\nI'd prefer this to be functionality builtin to cg-log and cg-mkpatch.\nPerhaps some\n\n\tcg-log -m $branch2 [$branch1]\n\nto show stuff in branch2 not yet merged to branch1.\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nC++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor\n"},{"id":"3347","messageId":"tnx3bsoki2j.fsf@arm.com","threadId":"620","inReplyTo":"20050514110941.GB3905@pasky.ji.cz","subject":"Re: [PATCH cogito] \"cg-whatsnew\" command","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@arm.com","sentAt":"2005-05-15T08:29:56Z","receivedAt":"2005-05-15T08:29:56Z","isPatch":true,"sender":{"key":"catalin.marinas@arm.com","avatar":null},"body":"Petr Baudis <pasky@ucw.cz> wrote:\n> Dear diary, on Sat, May 14, 2005 at 12:58:04PM CEST, I got a letter\n> where Catalin Marinas <catalin.marinas@arm.com> told me that...\n>> This patch adds a simple command that shows the unmerged changes on a\n>> branch. I find it quite useful to be able to see the diff or the log\n>> before merging (gnuarch has something similar with \"missing\").\n>\n> I'd prefer this to be functionality builtin to cg-log and cg-mkpatch.\n> Perhaps some\n>\n> \tcg-log -m $branch2 [$branch1]\n>\n> to show stuff in branch2 not yet merged to branch1.\n\nSee the attached patch. Let me know if you want it implemented\ndifferently. I also added the \"-m\" option to cg-diff.\n\n-- \nCatalin\n\n\n\n\"-m\" option added to cg-diff, cg-log and cg-mkpatch\n\nThis option takes two optional parameters, branch2 and branch1, and shows\nthe changes in branch2 not yet merged to branch1. Branch2 defaults to\norigin and branch1 to HEAD.\n\nSigned-off-by: Catalin Marinas <catalin.marinas@arm.com>\n\n---\ncommit 1a9bf2d3a0478344ae4019ac0725426627c32658\ntree 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75\nparent fa6e9eb368e949e78c4e66217461cf624b52b0a2\nauthor Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Sun, 15 May 2005 09:25:49 +0100\ncommitter Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Sun, 15 May 2005 09:25:49 +0100\n\n cg-diff    |   19 +++++++++++++++++++\n cg-help    |    6 +++---\n cg-log     |   19 +++++++++++++++++++\n cg-mkpatch |   19 +++++++++++++++++++\n 4 files changed, 60 insertions(+), 3 deletions(-)\n\nIndex: cg-diff\n===================================================================\n--- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-diff  (mode:100755)\n+++ 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75/cg-diff  (mode:100755)\n@@ -14,6 +14,9 @@\n # -p instead of one ID denotes a parent commit to the specified ID\n # (which must not be a tree, obviously).\n #\n+# -m [branch2] [branch1] shows the changes in branch2 (defaulting to\n+# origin) not yet merged to branch1 (defaulting to HEAD)\n+#\n # Outputs a diff converting the first tree to the second one.\n \n . ${COGITO_LIB}cg-Xlib\n@@ -31,6 +34,22 @@\n \tparent=1\n fi\n \n+if [ \"$1\" = \"-m\" ]; then\n+\tbranch=HEAD\n+\tid2=origin\n+\tshift\n+\tif [ \"$1\" ]; then\n+\t\tid2=$1\n+\t\tshift\n+\tfi\n+\tif [ \"$1\" ]; then\n+\t\tbranch=$1\n+\t\tshift\n+\tfi\n+\tid1=$(git-merge-base \"$branch\" \"$id2\")\n+\t[ \"$id1\" ] || die \"Unable to determine the merge base\"\n+fi\n+\n if [ \"$1\" = \"-r\" ]; then\n \tshift\n \tid1=$(echo \"$1\": | cut -d : -f 1)\nIndex: cg-help\n===================================================================\n--- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-help  (mode:100755)\n+++ 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75/cg-help  (mode:100755)\n@@ -26,14 +26,14 @@\n \tcg-cancel\n \tcg-clone\t[-s] SOURCE_LOC [DESTDIR]\n \tcg-commit\t[-m\"Commit message\"]... [-e | -E] [FILE]... < log message\n-\tcg-diff\t\t[-p] [-r FROM_ID[:TO_ID]] [FILE]...\n+\tcg-diff\t\t[-p] [-r FROM_ID[:TO_ID]] [-m [BNAME] [BNAME]] [FILE]...\n \tcg-export\tDEST [TREE_ID]\n \tcg-help\t\t[COMMAND]\n \tcg-init\n-\tcg-log\t\t[-c] [-f] [-r FROM_ID[:TO_ID]] [FILE]...\n+\tcg-log\t\t[-c] [-f] [-r FROM_ID[:TO_ID]] ] [-m [BNAME] [BNAME]] [FILE]...\n \tcg-ls\t\t[TREE_ID]\n \tcg-merge\t[-c] [-b BASE_ID] FROM_ID\n-\tcg-mkpatch\t[-s] [-r FROM_ID[:TO_ID]]\n+\tcg-mkpatch\t[-s] [-r FROM_ID[:TO_ID]]] [-m [BNAME] [BNAME]]\n \tcg-patch\t\t\t< patch on stdin\n \tcg-pull\t\t[BNAME]\n \tcg-restore\t[FILE]...\nIndex: cg-log\n===================================================================\n--- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-log  (mode:100755)\n+++ 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75/cg-log  (mode:100755)\n@@ -22,6 +22,9 @@\n # (HEAD by default), or id1:id2 representing an (id1;id2] range\n # of commits to show.\n #\n+# -m [branch2] [branch1] shows the changes in branch2 (defaulting to\n+# origin) not yet merged to branch1 (defaulting to HEAD)\n+#\n # The rest of arguments are took as filenames; cg-log then displays\n # only changes in those files.\n \n@@ -94,6 +97,22 @@\n \n log_start=\n log_end=\n+if [ \"$1\" = \"-m\" ]; then\n+\tbranch=HEAD\n+\tlog_end=origin\n+\tshift\n+\tif [ \"$1\" ]; then\n+\t\tlog_end=$1\n+\t\tshift\n+\tfi\n+\tif [ \"$1\" ]; then\n+\t\tbranch=$1\n+\t\tshift\n+\tfi\n+\tlog_start=$(git-merge-base \"$branch\" \"$log_end\")\n+\t[ \"$log_start\" ] || die \"Unable to determine the merge base\"\n+fi\n+\n if [ \"$1\" = \"-r\" ]; then\n \tshift\n \tlog_start=\"$1\"\nIndex: cg-mkpatch\n===================================================================\n--- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-mkpatch  (mode:100755)\n+++ 3e889a5c03d7df9f82d7a649e02fef2ebdbb9f75/cg-mkpatch  (mode:100755)\n@@ -9,6 +9,9 @@\n #\n # Takes an -r followed with ID defaulting to HEAD, or id1:id2, forming\n # a range (id1;id2]. (Use \"id1:\" to take just everything from id1 to HEAD.)\n+#\n+# -m [branch2] [branch1] shows the changes in branch2 (defaulting to\n+# origin) not yet merged to branch1 (defaulting to HEAD)\n \n . ${COGITO_LIB}cg-Xlib\n \n@@ -65,6 +68,22 @@\n \n log_start=\n log_end=\n+if [ \"$1\" = \"-m\" ]; then\n+\tbranch=HEAD\n+\tlog_end=origin\n+\tshift\n+\tif [ \"$1\" ]; then\n+\t\tlog_end=$1\n+\t\tshift\n+\tfi\n+\tif [ \"$1\" ]; then\n+\t\tbranch=$1\n+\t\tshift\n+\tfi\n+\tlog_start=$(git-merge-base \"$branch\" \"$log_end\")\n+\t[ \"$log_start\" ] || die \"Unable to determine the merge base\"\n+fi\n+\n if [ \"$1\" = \"-r\" ]; then\n \tshift\n \tlog_start=\"$1\"\n"},{"id":"3369","messageId":"pan.2005.05.15.17.36.37.623874@smurf.noris.de","threadId":"620","inReplyTo":"tnx3bsoki2j.fsf@arm.com","subject":"Re: [PATCH cogito] \"cg-whatsnew\" command","fromName":"Matthias Urlichs","fromEmail":"smurf@smurf.noris.de","sentAt":"2005-05-15T17:36:37Z","receivedAt":"2005-05-15T17:36:37Z","isPatch":true,"sender":{"key":"matthias@urlichs.de","avatar":"https://gravatar.com/avatar/2708905af227313eba6f2b2ae0f7d0259b5ac5d71baef58fe5a13c699ce0bbf0?d=mp&s=160"},"body":"Hi, Catalin Marinas wrote:\n\n> +\tcg-diff\t\t[-p] [-r FROM_ID[:TO_ID]] [-m [BNAME] [BNAME]] [FILE]...\n\nThat should be\n\n[-m [BNAME [BNAME]]]\n\nthough I'd suggest something more mnemonic than two BNAMEs.\n\n-- \nMatthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de\n\n\n"},{"id":"3410","messageId":"tnxis1jk1sn.fsf@arm.com","threadId":"620","inReplyTo":"pan.2005.05.15.17.36.37.623874@smurf.noris.de","subject":"Re: [PATCH cogito] \"cg-whatsnew\" command","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@arm.com","sentAt":"2005-05-16T08:33:44Z","receivedAt":"2005-05-16T08:33:44Z","isPatch":true,"sender":{"key":"catalin.marinas@arm.com","avatar":null},"body":"Matthias Urlichs <smurf@smurf.noris.de> wrote:\n>> +\tcg-diff\t\t[-p] [-r FROM_ID[:TO_ID]] [-m [BNAME] [BNAME]] [FILE]...\n>\n> That should be\n>\n> [-m [BNAME [BNAME]]]\n\nYou are right.\n\n> though I'd suggest something more mnemonic than two BNAMEs.\n\nAnother try, see attached.\n\n-- \nCatalin\n\n\n\n\"-m\" option added to cg-diff, cg-log and cg-mkpatch\n\nThis option takes two optional parameters, branch2 and branch1, and shows\nthe changes in branch2 not yet merged to branch1. Branch2 defaults to\norigin and branch1 to HEAD.\n\nSigned-off-by: Catalin Marinas <catalin.marinas@arm.com>\n\n---\ncommit 54c787f373557940617bca2c206c731d04c7e07b\ntree d46bb25bdadb369e6cbf28ca25ffaeb4b41f7381\nparent fa6e9eb368e949e78c4e66217461cf624b52b0a2\nauthor Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Mon, 16 May 2005 09:30:08 +0100\ncommitter Catalin Marinas <cmarinas@pc1117.cambridge.arm.com> Mon, 16 May 2005 09:30:08 +0100\n\n cg-diff    |   19 +++++++++++++++++++\n cg-help    |    8 +++++---\n cg-log     |   19 +++++++++++++++++++\n cg-mkpatch |   19 +++++++++++++++++++\n 4 files changed, 62 insertions(+), 3 deletions(-)\n\nIndex: cg-diff\n===================================================================\n--- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-diff  (mode:100755)\n+++ d46bb25bdadb369e6cbf28ca25ffaeb4b41f7381/cg-diff  (mode:100755)\n@@ -14,6 +14,9 @@\n # -p instead of one ID denotes a parent commit to the specified ID\n # (which must not be a tree, obviously).\n #\n+# -m [branch2] [branch1] shows the changes in branch2 (defaulting to\n+# origin) not yet merged to branch1 (defaulting to HEAD)\n+#\n # Outputs a diff converting the first tree to the second one.\n \n . ${COGITO_LIB}cg-Xlib\n@@ -31,6 +34,22 @@\n \tparent=1\n fi\n \n+if [ \"$1\" = \"-m\" ]; then\n+\tbranch=HEAD\n+\tid2=origin\n+\tshift\n+\tif [ \"$1\" ]; then\n+\t\tid2=$1\n+\t\tshift\n+\tfi\n+\tif [ \"$1\" ]; then\n+\t\tbranch=$1\n+\t\tshift\n+\tfi\n+\tid1=$(git-merge-base \"$branch\" \"$id2\")\n+\t[ \"$id1\" ] || die \"Unable to determine the merge base\"\n+fi\n+\n if [ \"$1\" = \"-r\" ]; then\n \tshift\n \tid1=$(echo \"$1\": | cut -d : -f 1)\nIndex: cg-help\n===================================================================\n--- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-help  (mode:100755)\n+++ d46bb25bdadb369e6cbf28ca25ffaeb4b41f7381/cg-help  (mode:100755)\n@@ -26,14 +26,16 @@\n \tcg-cancel\n \tcg-clone\t[-s] SOURCE_LOC [DESTDIR]\n \tcg-commit\t[-m\"Commit message\"]... [-e | -E] [FILE]... < log message\n-\tcg-diff\t\t[-p] [-r FROM_ID[:TO_ID]] [FILE]...\n+\tcg-diff\t\t[-p] [-r FROM_ID[:TO_ID]] [-m [SRC_BNAME [DST_BNAME]]] \\\\\n+\t\t\t[FILE]...\n \tcg-export\tDEST [TREE_ID]\n \tcg-help\t\t[COMMAND]\n \tcg-init\n-\tcg-log\t\t[-c] [-f] [-r FROM_ID[:TO_ID]] [FILE]...\n+\tcg-log\t\t[-c] [-f] [-r FROM_ID[:TO_ID]] ] \\\\\n+\t\t\t[-m [SRC_BNAME [DST_BNAME]]] [FILE]...\n \tcg-ls\t\t[TREE_ID]\n \tcg-merge\t[-c] [-b BASE_ID] FROM_ID\n-\tcg-mkpatch\t[-s] [-r FROM_ID[:TO_ID]]\n+\tcg-mkpatch\t[-s] [-r FROM_ID[:TO_ID]]] [-m [SRC_BNAME [DST_BNAME]]]\n \tcg-patch\t\t\t< patch on stdin\n \tcg-pull\t\t[BNAME]\n \tcg-restore\t[FILE]...\nIndex: cg-log\n===================================================================\n--- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-log  (mode:100755)\n+++ d46bb25bdadb369e6cbf28ca25ffaeb4b41f7381/cg-log  (mode:100755)\n@@ -22,6 +22,9 @@\n # (HEAD by default), or id1:id2 representing an (id1;id2] range\n # of commits to show.\n #\n+# -m [branch2] [branch1] shows the changes in branch2 (defaulting to\n+# origin) not yet merged to branch1 (defaulting to HEAD)\n+#\n # The rest of arguments are took as filenames; cg-log then displays\n # only changes in those files.\n \n@@ -94,6 +97,22 @@\n \n log_start=\n log_end=\n+if [ \"$1\" = \"-m\" ]; then\n+\tbranch=HEAD\n+\tlog_end=origin\n+\tshift\n+\tif [ \"$1\" ]; then\n+\t\tlog_end=$1\n+\t\tshift\n+\tfi\n+\tif [ \"$1\" ]; then\n+\t\tbranch=$1\n+\t\tshift\n+\tfi\n+\tlog_start=$(git-merge-base \"$branch\" \"$log_end\")\n+\t[ \"$log_start\" ] || die \"Unable to determine the merge base\"\n+fi\n+\n if [ \"$1\" = \"-r\" ]; then\n \tshift\n \tlog_start=\"$1\"\nIndex: cg-mkpatch\n===================================================================\n--- de641904363cd3759f132ee7c0dfaf8a2ee58388/cg-mkpatch  (mode:100755)\n+++ d46bb25bdadb369e6cbf28ca25ffaeb4b41f7381/cg-mkpatch  (mode:100755)\n@@ -9,6 +9,9 @@\n #\n # Takes an -r followed with ID defaulting to HEAD, or id1:id2, forming\n # a range (id1;id2]. (Use \"id1:\" to take just everything from id1 to HEAD.)\n+#\n+# -m [branch2] [branch1] shows the changes in branch2 (defaulting to\n+# origin) not yet merged to branch1 (defaulting to HEAD)\n \n . ${COGITO_LIB}cg-Xlib\n \n@@ -65,6 +68,22 @@\n \n log_start=\n log_end=\n+if [ \"$1\" = \"-m\" ]; then\n+\tbranch=HEAD\n+\tlog_end=origin\n+\tshift\n+\tif [ \"$1\" ]; then\n+\t\tlog_end=$1\n+\t\tshift\n+\tfi\n+\tif [ \"$1\" ]; then\n+\t\tbranch=$1\n+\t\tshift\n+\tfi\n+\tlog_start=$(git-merge-base \"$branch\" \"$log_end\")\n+\t[ \"$log_start\" ] || die \"Unable to determine the merge base\"\n+fi\n+\n if [ \"$1\" = \"-r\" ]; then\n \tshift\n \tlog_start=\"$1\"\n"},{"id":"3521","messageId":"20050518223034.GH10358@pasky.ji.cz","threadId":"620","inReplyTo":"tnxis1jk1sn.fsf@arm.com","subject":"Re: [PATCH cogito] \"cg-whatsnew\" command","fromName":"Petr Baudis","fromEmail":"pasky@ucw.cz","sentAt":"2005-05-18T22:30:34Z","receivedAt":"2005-05-18T22:30:34Z","isPatch":true,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Mon, May 16, 2005 at 10:33:44AM CEST, I got a letter\nwhere Catalin Marinas <catalin.marinas@arm.com> told me that...\n> Matthias Urlichs <smurf@smurf.noris.de> wrote:\n> >> +\tcg-diff\t\t[-p] [-r FROM_ID[:TO_ID]] [-m [BNAME] [BNAME]] [FILE]...\n> >\n> > That should be\n> >\n> > [-m [BNAME [BNAME]]]\n> \n> You are right.\n> \n> > though I'd suggest something more mnemonic than two BNAMEs.\n> \n> Another try, see attached.\n\nUnfortunately I can't comment on it well when it's not either in the\nbody or as text/plain attachment.\n\nI think the -m usage doesn't make much sense now. What about dropping\nbranch1 and instead using what the user passed as the -r argument?\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\nC++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor\n"},{"id":"3524","messageId":"20050518235038.GA31191@kiste.smurf.noris.de","threadId":"620","inReplyTo":"20050518223034.GH10358@pasky.ji.cz","subject":"Re: [PATCH cogito] \"cg-whatsnew\" command","fromName":"Matthias Urlichs","fromEmail":"smurf@smurf.noris.de","sentAt":"2005-05-18T23:50:38Z","receivedAt":"2005-05-18T23:50:38Z","isPatch":true,"sender":{"key":"matthias@urlichs.de","avatar":"https://gravatar.com/avatar/2708905af227313eba6f2b2ae0f7d0259b5ac5d71baef58fe5a13c699ce0bbf0?d=mp&s=160"},"body":"Hi,\n\nPetr Baudis:\n> Unfortunately I can't comment on it well when it's not either in the\n> body or as text/plain attachment.\n\nIt was a text/x-patch attachment. What's the problem?\nIf nothing else: save it, read it in, s/^/> /.  *shrug*\n\nAt least, this way there won't be any word-wrapping by\noverzealous email programs ...\n\n-- \nMatthias Urlichs   |   {M:U} IT Design @ m-u-it.de   |  smurf@smurf.noris.de\n"},{"id":"3538","messageId":"tnxwtpv4o97.fsf@arm.com","threadId":"620","inReplyTo":"20050518223034.GH10358@pasky.ji.cz","subject":"Re: [PATCH cogito] \"cg-whatsnew\" command","fromName":"Catalin Marinas","fromEmail":"catalin.marinas@arm.com","sentAt":"2005-05-19T08:24:20Z","receivedAt":"2005-05-19T08:24:20Z","isPatch":true,"sender":{"key":"catalin.marinas@arm.com","avatar":null},"body":"Petr Baudis <pasky@ucw.cz> wrote:\n> Unfortunately I can't comment on it well when it's not either in the\n> body or as text/plain attachment.\n\nIt was attached as text/x-patch.\n\n> I think the -m usage doesn't make much sense now. What about dropping\n> branch1 and instead using what the user passed as the -r argument?\n\nSee attached (text/plain this time).\n\nIt is also possible not to give any argument to -m and use the -r ones\nentirely (not implemented in the attached patch).\n\n-- \nCatalin\n\n\n\n\"-m\" option added to cg-diff, cg-log and cg-mkpatch\n\nThis option takes a branch name as an optional parameter and shows the\nchanges on this branch not yet merged to HEAD or to the first argument\npassed to \"-r\".\n\nSigned-off-by: Catalin Marinas <catalin.marinas@arm.com>\n\n---\nIndex: cg-diff\n===================================================================\n--- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-diff  (mode:100755)\n+++ uncommitted/cg-diff  (mode:100755)\n@@ -14,6 +14,9 @@\n # -p instead of one ID denotes a parent commit to the specified ID\n # (which must not be a tree, obviously).\n #\n+# -m [branch] shows the changes in branch (defaulting to origin)\n+# not yet merged to HEAD (or the first argument passed to -r)\n+#\n # Outputs a diff converting the first tree to the second one.\n \n . ${COGITO_LIB}cg-Xlib\n@@ -49,6 +52,18 @@\n \tid1=$(parent-id \"$id2\" | head -n 1)\n fi\n \n+if [ \"$1\" = \"-m\" ]; then\n+\t[ \"$id1\" = \" \" ] && id1=HEAD\n+\tid2=origin\n+\tshift\n+\tif [ \"$1\" ]; then\n+\t\tid2=$1\n+\t\tshift\n+\tfi\n+\tid1=$(git-merge-base \"$id1\" \"$id2\")\n+\t[ \"$id1\" ] || die \"Unable to determine the merge base\"\n+fi\n+\n \n filter=\n if [ \"$*\" ]; then\nIndex: cg-help\n===================================================================\n--- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-help  (mode:100755)\n+++ uncommitted/cg-help  (mode:100755)\n@@ -26,14 +26,14 @@\n \tcg-cancel\n \tcg-clone\t[-s] SOURCE_LOC [DESTDIR]\n \tcg-commit\t[-m\"Commit message\"]... [-e | -E] [FILE]... < log message\n-\tcg-diff\t\t[-p] [-r FROM_ID[:TO_ID]] [FILE]...\n+\tcg-diff\t\t[-p] [-r FROM_ID[:TO_ID]] [-m [BNAME]] [FILE]...\n \tcg-export\tDEST [TREE_ID]\n \tcg-help\t\t[COMMAND]\n \tcg-init\n-\tcg-log\t\t[-c] [-f] [-r FROM_ID[:TO_ID]] [FILE]...\n+\tcg-log\t\t[-c] [-f] [-r FROM_ID[:TO_ID]] [-m [BNAME]] [FILE]...\n \tcg-ls\t\t[TREE_ID]\n \tcg-merge\t[-c] [-b BASE_ID] FROM_ID\n-\tcg-mkpatch\t[-s] [-r FROM_ID[:TO_ID]]\n+\tcg-mkpatch\t[-s] [-r FROM_ID[:TO_ID]] [-m [BNAME]]\n \tcg-patch\t\t\t< patch on stdin\n \tcg-pull\t\t[BNAME]\n \tcg-restore\t[FILE]...\nIndex: cg-log\n===================================================================\n--- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-log  (mode:100755)\n+++ uncommitted/cg-log  (mode:100755)\n@@ -22,6 +22,9 @@\n # (HEAD by default), or id1:id2 representing an (id1;id2] range\n # of commits to show.\n #\n+# -m [branch] shows the changes in branch (defaulting to origin)\n+# not yet merged to HEAD (or the first argument passed to -r)\n+#\n # The rest of arguments are took as filenames; cg-log then displays\n # only changes in those files.\n \n@@ -110,6 +113,18 @@\n \tshift\n fi\n \n+if [ \"$1\" = \"-m\" ]; then\n+\t[ \"$log_start\" ] || log_start=HEAD\n+\tlog_end=origin\n+\tshift\n+\tif [ \"$1\" ]; then\n+\t\tlog_end=$1\n+\t\tshift\n+\tfi\n+\tlog_start=$(git-merge-base \"$log_start\" \"$log_end\")\n+\t[ \"$log_start\" ] || die \"Unable to determine the merge base\"\n+fi\n+\n if [ \"$log_end\" ]; then\n \tid1=\"$(commit-id $log_start)\" || exit 1\n \tid2=\"$(commit-id $log_end)\" || exit 1\nIndex: cg-mkpatch\n===================================================================\n--- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-mkpatch  (mode:100755)\n+++ uncommitted/cg-mkpatch  (mode:100755)\n@@ -9,6 +9,9 @@\n #\n # Takes an -r followed with ID defaulting to HEAD, or id1:id2, forming\n # a range (id1;id2]. (Use \"id1:\" to take just everything from id1 to HEAD.)\n+#\n+# -m [branch] shows the changes in branch (defaulting to origin)\n+# not yet merged to HEAD (or the first argument passed to -r)\n \n . ${COGITO_LIB}cg-Xlib\n \n@@ -80,6 +83,18 @@\n \tshift\n fi\n \n+if [ \"$1\" = \"-m\" ]; then\n+\t[ \"$log_start\" ] || log_start=HEAD\n+\tlog_end=origin\n+\tshift\n+\tif [ \"$1\" ]; then\n+\t\tlog_end=$1\n+\t\tshift\n+\tfi\n+\tlog_start=$(git-merge-base \"$log_start\" \"$log_end\")\n+\t[ \"$log_start\" ] || die \"Unable to determine the merge base\"\n+fi\n+\n if [ \"$log_end\" ]; then\n \tid1=$(commit-id $log_start) || exit 1\n \tid2=$(commit-id $log_end) || exit 1\n"}]}