git-commit-vandalism/builtin
Jens Lehmann 9be1980bb9 clone: support atomic operation with --separate-git-dir
Since b57fb80a7d (init, clone: support --separate-git-dir for .git file)
git clone supports the --separate-git-dir option to create the git dir
outside the work tree. But when that option is used, the git dir won't be
deleted in case the clone fails like it would be without this option. This
makes clone lose its atomicity as in case of a failure a partly set up git
dir is left behind. A real world example where this leads to problems is
when "git submodule update" fails to clone a submodule and later calls to
"git submodule update" stumble over the partially set up git dir and try
to revive the submodule from there, which then fails with a not very user
friendly error message.

Fix that by updating the junk_git_dir variable (used to remember if and
what git dir should be removed in case of failure) to the new value given
with the --seperate-git-dir option. Also add a test for this to t5600 (and
while at it fix the former last test to not cd into a directory to test
for its existence but use "test -d" instead).

Reported-by: Manlio Perillo <manlio.perillo@gmail.com>
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2013-01-05 22:44:11 -08:00
..
add.c Merge branch 'maint' 2011-03-16 16:59:30 -07:00
annotate.c
apply.c Merge branch 'jc/maint-apply-report-offset' 2011-03-15 14:22:02 -07:00
archive.c
bisect--helper.c
blame.c standardize brace placement in struct definitions 2011-03-16 12:49:02 -07:00
branch.c branch: split off function that writes tracking info and commit subject 2011-03-16 12:52:15 -07:00
bundle.c
cat-file.c
check-attr.c
check-ref-format.c
checkout-index.c Merge branch 'jn/git-cmd-h-bypass-setup' 2010-12-12 21:49:50 -08:00
checkout.c Merge branch 'jc/checkout-orphan-warning' 2011-03-15 14:22:16 -07:00
clean.c Merge branch 'rs/opt-help-text' 2010-11-24 15:55:19 -08:00
clone.c clone: support atomic operation with --separate-git-dir 2013-01-05 22:44:11 -08:00
commit-tree.c
commit.c Merge branch 'jn/maint-commit-missing-template' into maint 2011-03-16 16:47:26 -07:00
config.c Merge branch 'lp/config-vername-check' 2011-02-27 21:58:31 -08:00
count-objects.c add description parameter to OPT__VERBOSE 2010-11-15 09:56:51 -08:00
describe.c for_each_hash: allow passing a 'void *data' pointer to callback 2011-02-18 22:25:51 -08:00
diff-files.c Convert struct diff_options to use struct pathspec 2011-02-03 12:28:15 -08:00
diff-index.c
diff-tree.c
diff.c Merge branch 'nd/struct-pathspec' 2011-02-27 21:17:36 -08:00
fast-export.c Merge branch 'mg/placeholders-are-lowercase' 2011-02-27 21:58:30 -08:00
fetch-pack.c commit: Add commit_list prefix in two function names. 2010-11-29 14:01:52 -08:00
fetch.c Make <identifier> lowercase as per CodingGuidelines 2011-02-15 11:53:10 -08:00
fmt-merge-msg.c Change incorrect "remote branch" to "remote tracking branch" in C code 2010-11-03 09:20:47 -07:00
for-each-ref.c
fsck.c fsck: do not give up too early in fsck_dir() 2011-01-27 12:58:15 -08:00
gc.c Merge branch 'jn/git-cmd-h-bypass-setup' 2010-12-12 21:49:50 -08:00
grep.c Merge branch 'maint' 2011-03-16 16:59:30 -07:00
hash-object.c Make hash-object more robust against malformed objects 2011-02-07 15:05:25 -08:00
help.c
index-pack.c standardize brace placement in struct definitions 2011-03-16 12:49:02 -07:00
init-db.c init, clone: support --separate-git-dir for .git file 2011-03-19 21:48:19 -07:00
log.c Merge branch 'maint' 2011-03-16 16:59:30 -07:00
ls-files.c Merge branch 'jn/git-cmd-h-bypass-setup' 2010-12-12 21:49:50 -08:00
ls-remote.c
ls-tree.c
mailinfo.c commit: helper methods to reduce redundant blocks of code 2010-11-04 13:53:34 -07:00
mailsplit.c
merge-base.c
merge-file.c Merge branch 'rs/opt-help-text' 2010-11-24 15:55:19 -08:00
merge-index.c
merge-ours.c
merge-recursive.c Merge branch 'jf/merge-ignore-ws' 2010-10-26 21:40:54 -07:00
merge-tree.c
merge.c Merge branch 'mg/placeholders-are-lowercase' into maint 2011-03-16 16:47:25 -07:00
mktag.c
mktree.c
mv.c add OPT__FORCE 2010-11-15 10:04:43 -08:00
name-rev.c
notes.c Make <identifier> lowercase as per CodingGuidelines 2011-02-15 11:53:10 -08:00
pack-objects.c thread-utils.h: simplify the inclusion 2010-12-10 12:58:06 -08:00
pack-redundant.c
pack-refs.c
patch-id.c git-patch-id: do not trip over "no newline" markers 2011-02-17 11:56:50 -08:00
prune-packed.c
prune.c add description parameter to OPT__DRY_RUN 2010-11-15 09:57:37 -08:00
push.c push: better error message when no remote configured 2011-03-02 15:34:26 -08:00
read-tree.c Make <identifier> lowercase as per CodingGuidelines 2011-02-15 11:53:10 -08:00
receive-pack.c Name make_*_path functions more accurately 2011-03-17 16:08:30 -07:00
reflog.c
remote-ext.c remote-ext: do not segfault for blank lines 2011-01-18 10:18:25 -08:00
remote-fd.c remote-fd/ext: finishing touches after code review 2010-11-19 11:04:20 -08:00
remote.c Merge branch 'rs/opt-help-text' 2010-11-24 15:55:19 -08:00
replace.c
rerere.c rerere "remaining" 2011-02-16 13:20:50 -08:00
reset.c Describe various forms of "be quiet" using OPT__QUIET 2010-11-15 10:04:56 -08:00
rev-list.c Merge branch 'jk/maint-rev-list-nul' into maint 2010-11-24 12:46:32 -08:00
rev-parse.c
revert.c Merge branch 'js/cherry-pick-usability' 2011-03-09 15:56:17 -08:00
rm.c builtin/rm.c: Use ALLOC_GROW instead of alloc_nr and xrealloc. 2010-12-19 10:44:06 -08:00
send-pack.c Merge branch 'jk/push-progress' 2010-11-17 15:01:00 -08:00
shortlog.c parse-options: Don't call parse_options_check() so much 2010-12-06 16:51:36 -08:00
show-branch.c commit: Add commit_list prefix in two function names. 2010-11-29 14:01:52 -08:00
show-ref.c Describe various forms of "be quiet" using OPT__QUIET 2010-11-15 10:04:56 -08:00
stripspace.c
symbolic-ref.c Describe various forms of "be quiet" using OPT__QUIET 2010-11-15 10:04:56 -08:00
tag.c Make <identifier> lowercase as per CodingGuidelines 2011-02-15 11:53:10 -08:00
tar-tree.c
unpack-file.c
unpack-objects.c
update-index.c Convert ce_path_match() to use struct pathspec 2011-02-03 14:08:30 -08:00
update-ref.c
update-server-info.c add OPT__FORCE 2010-11-15 10:04:43 -08:00
upload-archive.c
var.c
verify-pack.c
verify-tag.c Merge branch 'mg/maint-tag-rfc1991' 2010-12-08 11:24:13 -08:00
write-tree.c