summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Meyer <kyle@kyleam.com>2017-02-21 01:10:33 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-02-21 06:04:47 (GMT)
commitde922669ab0508109cdb5672e5515f7524e3ccf8 (patch)
treee2c422d531bba40feb3940d2c552ab6d4cc45e3a
parent755b49ae965c9d17d91fbe7902050428f366bf69 (diff)
downloadgit-de922669ab0508109cdb5672e5515f7524e3ccf8.zip
git-de922669ab0508109cdb5672e5515f7524e3ccf8.tar.gz
git-de922669ab0508109cdb5672e5515f7524e3ccf8.tar.bz2
update-ref: pass reflog message to delete_ref()
Now that delete_ref() accepts a reflog message, pass the user-provided message to delete_ref() rather than silently dropping it. Signed-off-by: Kyle Meyer <kyle@kyleam.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--builtin/update-ref.c2
-rwxr-xr-xt/t1400-update-ref.sh18
2 files changed, 19 insertions, 1 deletions
diff --git a/builtin/update-ref.c b/builtin/update-ref.c
index 86d006d..0b2ecf4 100644
--- a/builtin/update-ref.c
+++ b/builtin/update-ref.c
@@ -433,7 +433,7 @@ int cmd_update_ref(int argc, const char **argv, const char *prefix)
* For purposes of backwards compatibility, we treat
* NULL_SHA1 as "don't care" here:
*/
- return delete_ref(NULL, refname,
+ return delete_ref(msg, refname,
(oldval && !is_null_sha1(oldsha1)) ? oldsha1 : NULL,
flags);
else
diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh
index b0ffc0b..6e112fb 100755
--- a/t/t1400-update-ref.sh
+++ b/t/t1400-update-ref.sh
@@ -85,6 +85,24 @@ test_expect_success "delete $m (by HEAD)" '
'
rm -f .git/$m
+test_expect_success "deleting current branch adds message to HEAD's log" '
+ git update-ref $m $A &&
+ git symbolic-ref HEAD $m &&
+ git update-ref -m delete-$m -d $m &&
+ ! test -f .git/$m &&
+ grep "delete-$m$" .git/logs/HEAD
+'
+rm -f .git/$m
+
+test_expect_success "deleting by HEAD adds message to HEAD's log" '
+ git update-ref $m $A &&
+ git symbolic-ref HEAD $m &&
+ git update-ref -m delete-by-head -d HEAD &&
+ ! test -f .git/$m &&
+ grep "delete-by-head$" .git/logs/HEAD
+'
+rm -f .git/$m
+
test_expect_success 'update-ref does not create reflogs by default' '
test_when_finished "git update-ref -d $outside" &&
git update-ref $outside $A &&