diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-01-04 14:02:58 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-01-04 14:02:58 -0800 |
commit | e0025275827ea57a3a14aecfde1cd3812e70652a (patch) | |
tree | 824e03b7713fd09706ee7248068e2575a1b20c52 | |
parent | e54d0f5a025e124b27aab3381711721b73d5b68e (diff) | |
parent | f91b2732b3df6bae21512af58e0cfccbd5301331 (diff) | |
download | git-e0025275827ea57a3a14aecfde1cd3812e70652a.tar.gz |
Merge branch 'jk/symbolic-ref-maint' into maint
"git symbolic-ref" forgot to report a failure with its exit status.
* jk/symbolic-ref-maint:
t1401: test reflog creation for git-symbolic-ref
symbolic-ref: propagate error code from create_symref()
-rw-r--r-- | builtin/symbolic-ref.c | 2 | ||||
-rwxr-xr-x | t/t1401-symbolic-ref.sh | 22 |
2 files changed, 23 insertions, 1 deletions
diff --git a/builtin/symbolic-ref.c b/builtin/symbolic-ref.c index ce0fde705c..9c29a64e43 100644 --- a/builtin/symbolic-ref.c +++ b/builtin/symbolic-ref.c @@ -67,7 +67,7 @@ int cmd_symbolic_ref(int argc, const char **argv, const char *prefix) if (!strcmp(argv[0], "HEAD") && !starts_with(argv[1], "refs/")) die("Refusing to point HEAD outside of refs/"); - create_symref(argv[0], argv[1], msg); + ret = !!create_symref(argv[0], argv[1], msg); break; default: usage_with_options(git_symbolic_ref_usage, options); diff --git a/t/t1401-symbolic-ref.sh b/t/t1401-symbolic-ref.sh index 36378b0e3f..64968b7891 100755 --- a/t/t1401-symbolic-ref.sh +++ b/t/t1401-symbolic-ref.sh @@ -63,4 +63,26 @@ test_expect_success 'symbolic-ref fails to delete real ref' ' ' reset_to_sane +test_expect_success 'symbolic-ref reports failure in exit code' ' + test_when_finished "rm -f .git/HEAD.lock" && + >.git/HEAD.lock && + test_must_fail git symbolic-ref HEAD refs/heads/whatever +' + +test_expect_success 'symbolic-ref writes reflog entry' ' + git checkout -b log1 && + test_commit one && + git checkout -b log2 && + test_commit two && + git checkout --orphan orphan && + git symbolic-ref -m create HEAD refs/heads/log1 && + git symbolic-ref -m update HEAD refs/heads/log2 && + cat >expect <<-\EOF && + update + create + EOF + git log --format=%gs -g >actual && + test_cmp expect actual +' + test_done |