commit: avoid race when creating orphan commits
commita933c23e66265eedf822535ac56fcdb4ecb07a8c
authorMichael Haggerty <mhagger@alum.mit.edu>
Tue, 17 Feb 2015 17:00:18 +0000 (17 18:00 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 17 Feb 2015 19:24:20 +0000 (17 11:24 -0800)
tree2248903b0d95e1bdf362828ebf5dd40507c3532b
parenta908a31c344cdcce2bf1a9fc163f3bccd2349e6a
commit: avoid race when creating orphan commits

If HEAD doesn't point at anything during the initial check, then we
should make sure that it *still* doesn't point at anything when we are
ready to update the reference. Otherwise, another process might commit
while we are working (e.g., while we are waiting for the user to edit
the commit message) and we will silently overwrite it.

This fixes a failing test in t7516.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Reviewed-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/commit.c
t/t7516-commit-races.sh