summaryrefslogtreecommitdiff
path: root/builtin/update-ref.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2014-12-29 09:30:55 -0800
committerJunio C Hamano <gitster@pobox.com>2014-12-29 09:30:56 -0800
commitcb71e73ade40500591d60f76fb4f6faae6a323a5 (patch)
treeac7da482e97efd31483f01a5e6e2291bae356007 /builtin/update-ref.c
parentbbcefffcea9789e4a1a2023a1c778e2c07db77a7 (diff)
parent0e729c7ed5b3c0c6be38bf8d8405b1b7f5a74a3f (diff)
downloadgit-cb71e73ade40500591d60f76fb4f6faae6a323a5.tar.gz
Merge branch 'mh/update-ref-verify'
"git update-ref --stdin"'s verify command did not work well when <oldvalue>, which is documented as optional, was missing. * mh/update-ref-verify: update-ref: fix "verify" command with missing <oldvalue> t1400: add some more tests of "update-ref --stdin"'s verify command
Diffstat (limited to 'builtin/update-ref.c')
-rw-r--r--builtin/update-ref.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/builtin/update-ref.c b/builtin/update-ref.c
index 6c9be05128..1993529521 100644
--- a/builtin/update-ref.c
+++ b/builtin/update-ref.c
@@ -282,26 +282,22 @@ static const char *parse_cmd_verify(struct ref_transaction *transaction,
char *refname;
unsigned char new_sha1[20];
unsigned char old_sha1[20];
- int have_old;
refname = parse_refname(input, &next);
if (!refname)
die("verify: missing <ref>");
if (parse_next_sha1(input, &next, old_sha1, "verify", refname,
- PARSE_SHA1_OLD)) {
- hashclr(new_sha1);
- have_old = 0;
- } else {
- hashcpy(new_sha1, old_sha1);
- have_old = 1;
- }
+ PARSE_SHA1_OLD))
+ hashclr(old_sha1);
+
+ hashcpy(new_sha1, old_sha1);
if (*next != line_termination)
die("verify %s: extra input: %s", refname, next);
if (ref_transaction_update(transaction, refname, new_sha1, old_sha1,
- update_flags, have_old, msg, &err))
+ update_flags, 1, msg, &err))
die("%s", err.buf);
update_flags = 0;