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>
Kyle Meyer committed
Feb 20, 2017 at 20:10 UTC
de922669ab0508109cdb5672e5515f7524e3ccf8
2 files changed
+19
-1
builtin/update-ref.c
+1
-1
@@ -433,7 +433,7 @@ int cmd_update_ref(int argc, const char **argv, const char *prefix)
433
* For purposes of backwards compatibility, we treat
434
* NULL_SHA1 as "don't care" here:
435
*/
436
- return delete_ref(NULL, refname,
436
+ return delete_ref(msg, refname,
437
(oldval && !is_null_sha1(oldsha1)) ? oldsha1 : NULL,
438
flags);
439
else
t/t1400-update-ref.sh
+18
@@ -85,6 +85,24 @@ test_expect_success "delete $m (by HEAD)" '
85
'
86
rm -f .git/$m
87
88
+test_expect_success "deleting current branch adds message to HEAD's log" '
89
+ git update-ref $m $A &&
90
+ git symbolic-ref HEAD $m &&
91
+ git update-ref -m delete-$m -d $m &&
92
+ ! test -f .git/$m &&
93
+ grep "delete-$m$" .git/logs/HEAD
94
+'
95
+rm -f .git/$m
96
+
97
+test_expect_success "deleting by HEAD adds message to HEAD's log" '
98
+ git update-ref $m $A &&
99
+ git symbolic-ref HEAD $m &&
100
+ git update-ref -m delete-by-head -d HEAD &&
101
+ ! test -f .git/$m &&
102
+ grep "delete-by-head$" .git/logs/HEAD
103
+'
104
+rm -f .git/$m
105
+
106
test_expect_success 'update-ref does not create reflogs by default' '
107
test_when_finished "git update-ref -d $outside" &&
108
git update-ref $outside $A &&