From 587ac8c9d4b4a9e054dddb4779f6206fde5950ef Mon Sep 17 00:00:00 2001 From: Jeff King Date: Mon, 9 May 2011 16:53:00 -0700 Subject: t7501.8: feed a meaningful command The command expects "git commit --interactive " to fail because you cannot (yet) limit "commit --interactive" with a pathspec, but even if the command allowed to take , the test would have failed as saying just 7:quit would leave the index the same as the current commit, leading to an attempt to create an empty commit that would fail without --allow-empty. Signed-off-by: Jeff King Signed-off-by: Junio C Hamano --- t/t7501-commit.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 't/t7501-commit.sh') diff --git a/t/t7501-commit.sh b/t/t7501-commit.sh index a76c474195..3d2b14d303 100755 --- a/t/t7501-commit.sh +++ b/t/t7501-commit.sh @@ -41,10 +41,12 @@ test_expect_success \ "echo King of the bongo >file && test_must_fail git commit -m foo -a file" -test_expect_success PERL \ - "using paths with --interactive" \ - "echo bong-o-bong >file && - ! (echo 7 | git commit -m foo --interactive file)" +test_expect_success PERL 'cannot use paths with --interactive' ' + echo bong-o-bong >file && + # 2: update, 1:st path, that is all, 7: quit + ( echo 2; echo 1; echo; echo 7 ) | + test_must_fail git commit -m foo --interactive file +' test_expect_success \ "using invalid commit with -C" \ -- cgit v1.3 From e41fcfe955cb8080bf8f0e16352d3131d1f01ac8 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Fri, 6 May 2011 23:00:00 -0700 Subject: Allow git commit --interactive with paths Make git commit --interactive feel more like git add --interactive by allowing the user to restrict the list of files they have to deal with. A test in t7501 used to ensure that this is not allowed; no need for that anymore. Signed-off-by: Conrad Irwin Signed-off-by: Junio C Hamano --- builtin/commit.c | 2 -- t/t7501-commit.sh | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 't/t7501-commit.sh') diff --git a/builtin/commit.c b/builtin/commit.c index 636aea6d62..7707af8844 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -1084,8 +1084,6 @@ static int parse_and_validate_options(int argc, const char *argv[], if (all && argc > 0) die(_("Paths with -a does not make sense.")); - else if (interactive && argc > 0) - die(_("Paths with --interactive does not make sense.")); if (null_termination && status_format == STATUS_FORMAT_LONG) status_format = STATUS_FORMAT_PORCELAIN; diff --git a/t/t7501-commit.sh b/t/t7501-commit.sh index 3d2b14d303..c2fd116d63 100755 --- a/t/t7501-commit.sh +++ b/t/t7501-commit.sh @@ -41,11 +41,12 @@ test_expect_success \ "echo King of the bongo >file && test_must_fail git commit -m foo -a file" -test_expect_success PERL 'cannot use paths with --interactive' ' +test_expect_success PERL 'can use paths with --interactive' ' echo bong-o-bong >file && # 2: update, 1:st path, that is all, 7: quit ( echo 2; echo 1; echo; echo 7 ) | - test_must_fail git commit -m foo --interactive file + git commit -m foo --interactive file && + git reset --hard HEAD^ ' test_expect_success \ -- cgit v1.3 From 02a481fc6aef5d8a52f900448657d1cbe7c963ef Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Tue, 10 May 2011 12:12:31 -0700 Subject: Test atomic git-commit --interactive Signed-off-by: Conrad Irwin Helped-by: Jeff King Signed-off-by: Junio C Hamano --- t/t7501-commit.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 't/t7501-commit.sh') diff --git a/t/t7501-commit.sh b/t/t7501-commit.sh index c2fd116d63..73e19c50b0 100755 --- a/t/t7501-commit.sh +++ b/t/t7501-commit.sh @@ -133,6 +133,16 @@ test_expect_success PERL \ "interactive add" \ "echo 7 | git commit --interactive | grep 'What now'" +test_expect_success PERL \ + "commit --interactive doesn't change index if editor aborts" \ + "echo zoo >file && + test_must_fail git diff --exit-code >diff1 && + (echo u ; echo '*' ; echo q) | + (EDITOR=: && export EDITOR && + test_must_fail git commit --interactive) && + git diff >diff2 && + test_cmp diff1 diff2" + test_expect_success \ "showing committed revisions" \ "git rev-list HEAD >current" -- cgit v1.3