mirror of
https://github.com/git/git.git
synced 2024-11-28 04:23:30 +08:00
commit-tree: resurrect command line parsing updates
79a9312
(commit-tree: update the command line parsing, 2011-11-09) updated the command line parser to understand the usual "flags first and then non-flag arguments" order, in addition to the original and a bit unusual "tree comes first and then zero or more -p <parent>". Unfortunately,ba3c69a
(commit: teach --gpg-sign option, 2011-10-05) broke it by mistake. Resurrect it, and protect the feature with a test from future breakages. Noticed by Keshav Kini Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
ba3c69a9ee
commit
9aab1b5118
@ -48,9 +48,6 @@ int cmd_commit_tree(int argc, const char **argv, const char *prefix)
|
||||
if (argc < 2 || !strcmp(argv[1], "-h"))
|
||||
usage(commit_tree_usage);
|
||||
|
||||
if (get_sha1(argv[1], tree_sha1))
|
||||
die("Not a valid object name %s", argv[1]);
|
||||
|
||||
for (i = 1; i < argc; i++) {
|
||||
const char *arg = argv[i];
|
||||
if (!strcmp(arg, "-p")) {
|
||||
|
@ -7,6 +7,9 @@ test_description='git commit-tree options test
|
||||
|
||||
This test checks that git commit-tree can create a specific commit
|
||||
object by defining all environment variables that it understands.
|
||||
|
||||
Also make sure that command line parser understands the normal
|
||||
"flags first and then non flag arguments" command line.
|
||||
'
|
||||
|
||||
. ./test-lib.sh
|
||||
@ -42,4 +45,18 @@ test_expect_success \
|
||||
'compare commit' \
|
||||
'test_cmp expected commit'
|
||||
|
||||
|
||||
test_expect_success 'flags and then non flags' '
|
||||
echo comment text |
|
||||
git commit-tree $(cat treeid) >commitid &&
|
||||
echo comment text |
|
||||
git commit-tree $(cat treeid) -p $(cat commitid) >childid-1 &&
|
||||
echo comment text |
|
||||
git commit-tree -p $(cat commitid) $(cat treeid) >childid-2 &&
|
||||
test_cmp childid-1 childid-2 &&
|
||||
git commit-tree $(cat treeid) -m foo >childid-3 &&
|
||||
git commit-tree -m foo $(cat treeid) >childid-4 &&
|
||||
test_cmp childid-3 childid-4
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user