aboutsummaryrefslogtreecommitdiff
path: root/builtin/clone.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-04-01 17:57:37 -0700
committerJunio C Hamano <gitster@pobox.com>2011-04-01 17:57:37 -0700
commitc4b2ce69534e1d51f71142ba0e463ed89605ccd1 (patch)
tree6cb1a1c828b387e14e2e39fc931892a609725527 /builtin/clone.c
parentffc5e3c958b66fb4babeba01483cc924bc2957a5 (diff)
parentb57fb80a7d7d19102b31ab94a28ed43ea1ee07bb (diff)
downloadgit-c4b2ce69534e1d51f71142ba0e463ed89605ccd1.tar.gz
git-c4b2ce69534e1d51f71142ba0e463ed89605ccd1.tar.xz
Merge branch 'nd/init-gitdir'
* nd/init-gitdir: init, clone: support --separate-git-dir for .git file git-init.txt: move description section up Conflicts: builtin/clone.c
Diffstat (limited to 'builtin/clone.c')
-rw-r--r--builtin/clone.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/builtin/clone.c b/builtin/clone.c
index 0b5601a9b..4144bcf5c 100644
--- a/builtin/clone.c
+++ b/builtin/clone.c
@@ -42,6 +42,7 @@ static int option_local, option_no_hardlinks, option_shared, option_recursive;
static char *option_template, *option_reference, *option_depth;
static char *option_origin = NULL;
static char *option_branch = NULL;
+static const char *real_git_dir;
static char *option_upload_pack = "git-upload-pack";
static int option_verbosity;
static int option_progress;
@@ -80,6 +81,8 @@ static struct option builtin_clone_options[] = {
"path to git-upload-pack on the remote"),
OPT_STRING(0, "depth", &option_depth, "depth",
"create a shallow clone of that depth"),
+ OPT_STRING('L', "separate-git-dir", &real_git_dir, "gitdir",
+ "separate git dir from working tree"),
OPT_END()
};
@@ -467,7 +470,10 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
if (safe_create_leading_directories_const(git_dir) < 0)
die(_("could not create leading directories of '%s'"), git_dir);
- set_git_dir(real_path(git_dir));
+
+ set_git_dir_init(git_dir, real_git_dir, 0);
+ if (real_git_dir)
+ git_dir = real_git_dir;
if (0 <= option_verbosity) {
if (option_bare)