DORMANTno replies

[PATCH] Make -p flag optional from commit-tree.

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:41:54

We cannot currently say:

 $ commit-tree $(write-tree) $(cat .git/heads/junio .git/heads/linus)

The above must be written as:

 $ commit-tree $(write-tree) \
     -p $(cat .git/heads/junio) \
     -p $(cat .git/heads/linus)

This patch makes -p flag optional.  Existing scripts are
hopefully not affected because they are passing -p properly.  If
we want to introduce non parent-ID parameters to commit-tree
later, we can give them their own -flag letters.

Signed-off-by: Junio C Hamano <redacted>
---

 commit-tree.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

commit-tree.c: c0b07f89286c3f6cceae8122b4c3142c8efaf8e1
--- a/commit-tree.c
+++ b/commit-tree.c
@@ -297,10 +297,17 @@ int main(int argc, char **argv)
 		usage(commit_tree_usage);
 
 	check_valid(tree_sha1, "tree");
-	for (i = 2; i < argc; i += 2) {
-		char *a, *b;
-		a = argv[i]; b = argv[i+1];
-		if (!b || strcmp(a, "-p") || get_sha1_hex(b, parent_sha1[parents]))
+	for (i = 2; i < argc; i++) {
+		/* Historically commit-tree required -p in front of
+		 * each parent commit ID.  This is confusing.  We can
+		 * add non parent commit ID parameter later by defining
+		 * flags other than "-p" so let's just ignore them. 
+		 */
+		if (! strcmp(argv[i], "-p"))
+			continue;
+
+		/* Currently it just expects parent IDs. */
+		if (get_sha1_hex(argv[i], parent_sha1[parents]))
 			usage(commit_tree_usage);
 		check_valid(parent_sha1[parents], "commit");
 		parents++;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help