summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2015-03-25 12:54:24 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2015-03-25 12:54:24 -0700
commit927936d75391a81250543c928fed620a2af98464 (patch)
treeab6690570bae6e87b30081e6380aeb921abbad8b
parentMerge branch 'jc/submitting-patches-mention-send-email' (diff)
parentclone: drop period from end of die_errno message (diff)
downloadtgif-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
-rw-r--r--builtin/clone.c11
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);