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