diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-03-25 12:54:24 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-25 12:54:24 -0700 |
commit | 927936d75391a81250543c928fed620a2af98464 (patch) | |
tree | ab6690570bae6e87b30081e6380aeb921abbad8b /builtin | |
parent | Merge branch 'jc/submitting-patches-mention-send-email' (diff) | |
parent | clone: drop period from end of die_errno message (diff) | |
download | tgif-927936d75391a81250543c928fed620a2af98464.tar.xz |
Merge branch 'jk/cleanup-failed-clone'
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')
-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 957246723e..53a2e5af35 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); |