diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-12-29 00:57:24 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-12-29 00:57:24 +0300 |
commit | e929264e8d769cd3637279c0a2b6338f9ec1c4c3 (patch) | |
tree | b37409a3dcc75e6fa691cf85da1d806be6516853 | |
parent | ce858c06a4254633c1de29ab2ab41d7afa935065 (diff) | |
parent | f91b2732b3df6bae21512af58e0cfccbd5301331 (diff) |
Merge branch 'jk/symbolic-ref-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 20b022ae33..1f0dff3a0b 100755 --- a/t/t1401-symbolic-ref.sh +++ b/t/t1401-symbolic-ref.sh @@ -92,4 +92,26 @@ test_expect_success LONG_REF 'we can parse long symbolic ref' ' test_cmp expect actual ' +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 |