git-stash: use update-ref --create-reflog instead of creating files
This is in support of alternate ref backends which don't necessarily store reflogs as files. Signed-off-by: David Turner <dturner@twopensource.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
David Turner committed
Jul 21, 2015 at 17:04 UTC
89dea973349769efa8facc6f7b11095958205d4d
1 file changed
+2
-4
git-stash.sh
+2
-4
@@ -183,9 +183,7 @@ store_stash () {
183
stash_msg="Created via \"git stash store\"."
184
fi
185
186
- # Make sure the reflog for stash is kept.
187
- : >>"$(git rev-parse --git-path logs/$ref_stash)"
188
- git update-ref -m "$stash_msg" $ref_stash $w_commit
186
+ git update-ref --create-reflog -m "$stash_msg" $ref_stash $w_commit
187
ret=$?
188
test $ret != 0 && test -z $quiet &&
189
die "$(eval_gettext "Cannot update \$ref_stash with \$w_commit")"
@@ -262,7 +260,7 @@ save_stash () {
260
say "$(gettext "No local changes to save")"
261
exit 0
262
fi
265
- test -f "$(git rev-parse --git-path logs/$ref_stash)" ||
263
+ git reflog exists $ref_stash ||
264
clear_stash || die "$(gettext "Cannot initialize stash")"
265
266
create_stash "$stash_msg" $untracked