diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-03-28 09:33:09 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-28 09:33:09 -0700 |
commit | 73d8bfde32acae522b305f7742350d392e3f4e86 (patch) | |
tree | 586fa45f15183abe364dc8ebc63fcc50c98188b6 /builtin/clone.c | |
parent | 591a1daa7cdfd40ce76d0afcca05a7a648e73f3d (diff) | |
parent | 16eff6c009c0af430975d44c0af98262f1edb549 (diff) | |
download | git-73d8bfde32acae522b305f7742350d392e3f4e86.tar.gz git-73d8bfde32acae522b305f7742350d392e3f4e86.tar.xz |
Merge branch 'jk/cleanup-failed-clone' into maint
An failure early in the "git clone" that started creating the
working tree and repository could have resulted in some directories
and files left without getting cleaned up.
* jk/cleanup-failed-clone:
clone: drop period from end of die_errno message
clone: initialize atexit cleanup handler earlier
Diffstat (limited to 'builtin/clone.c')
-rw-r--r-- | builtin/clone.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/builtin/clone.c b/builtin/clone.c index 316c75d0b..2d77a2de4 100644 --- a/builtin/clone.c +++ b/builtin/clone.c @@ -842,20 +842,21 @@ int cmd_clone(int argc, const char **argv, const char *prefix) git_dir = mkpathdup("%s/.git", dir); } + atexit(remove_junk); + sigchain_push_common(remove_junk_on_signal); + if (!option_bare) { - junk_work_tree = work_tree; if (safe_create_leading_directories_const(work_tree) < 0) die_errno(_("could not create leading directories of '%s'"), work_tree); if (!dest_exists && mkdir(work_tree, 0777)) - die_errno(_("could not create work tree dir '%s'."), + die_errno(_("could not create work tree dir '%s'"), work_tree); + junk_work_tree = work_tree; set_git_work_tree(work_tree); } - junk_git_dir = git_dir; - atexit(remove_junk); - sigchain_push_common(remove_junk_on_signal); + junk_git_dir = git_dir; if (safe_create_leading_directories_const(git_dir) < 0) die(_("could not create leading directories of '%s'"), git_dir); |