From: "Torsten Bögershausen" <tboegi@web.de>
To: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v3 18/25] setup.c: support multi-checkout repo setup
Date: Mon, 24 Mar 2014 15:52:13 +0100 [thread overview]
Message-ID: <5330469D.9020008@web.de> (raw)
In-Reply-To: <1392730814-19656-19-git-send-email-pclouds@gmail.com>
On 02/18/2014 02:40 PM, Nguyễn Thái Ngọc Duy wrote:
> The repo setup procedure is updated to detect $GIT_DIR/commondir and
> set $GIT_COMMON_DIR properly.
>
> The core.worktree is ignored when $GIT_DIR/commondir presents. This is
> because "commondir" repos are intended for separate/linked checkouts
> and pointing them back to a fixed core.worktree just does not make
> sense.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
> Documentation/config.txt | 3 +-
> Documentation/git-rev-parse.txt | 3 ++
> builtin/rev-parse.c | 4 +++
> cache.h | 1 +
> environment.c | 8 ++---
> setup.c | 33 +++++++++++++-----
> t/t1501-worktree.sh | 76 +++++++++++++++++++++++++++++++++++++++++
> t/t1510-repo-setup.sh | 1 +
> trace.c | 1 +
> 9 files changed, 115 insertions(+), 15 deletions(-)
>
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index 5f4d793..cbf4d97 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -381,7 +381,8 @@ false), while all other repositories are assumed to be bare (bare
>
> core.worktree::
> Set the path to the root of the working tree.
> - This can be overridden by the GIT_WORK_TREE environment
> + This can be overridden by the GIT_WORK_TREE
> + or GIT_COMMON_DIR environment
> variable and the '--work-tree' command line option.
> The value can be an absolute path or relative to the path to
> the .git directory, which is either specified by --git-dir
> diff --git a/Documentation/git-rev-parse.txt b/Documentation/git-rev-parse.txt
> index 33e4e90..8e6ad32 100644
> --- a/Documentation/git-rev-parse.txt
> +++ b/Documentation/git-rev-parse.txt
> @@ -215,6 +215,9 @@ If `$GIT_DIR` is not defined and the current directory
> is not detected to lie in a Git repository or work tree
> print a message to stderr and exit with nonzero status.
>
> +--git-common-dir::
> + Show `$GIT_COMMON_DIR` if defined, else `$GIT_DIR`.
> +
> --is-inside-git-dir::
> When the current working directory is below the repository
> directory print "true", otherwise "false".
> diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c
> index e50bc65..c7057ce 100644
> --- a/builtin/rev-parse.c
> +++ b/builtin/rev-parse.c
> @@ -744,6 +744,10 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix)
> printf("%s%s.git\n", cwd, len && cwd[len-1] != '/' ? "/" : "");
> continue;
> }
> + if (!strcmp(arg, "--git-common-dir")) {
> + puts(get_git_common_dir());
> + continue;
> + }
> if (!strcmp(arg, "--resolve-git-dir")) {
> const char *gitdir = resolve_gitdir(argv[i+1]);
> if (!gitdir)
> diff --git a/cache.h b/cache.h
> index 51ade32..98b5dd3 100644
> --- a/cache.h
> +++ b/cache.h
> @@ -407,6 +407,7 @@ extern char *get_object_directory(void);
> extern char *get_index_file(void);
> extern char *get_graft_file(void);
> extern int set_git_dir(const char *path);
> +extern int get_common_dir(struct strbuf *sb, const char *gitdir);
> extern const char *get_git_namespace(void);
> extern const char *strip_namespace(const char *namespaced_ref);
> extern const char *get_git_work_tree(void);
> diff --git a/environment.c b/environment.c
> index c998120..0999fc1 100644
> --- a/environment.c
> +++ b/environment.c
> @@ -126,6 +126,7 @@ static char *expand_namespace(const char *raw_namespace)
>
> static void setup_git_env(void)
> {
> + struct strbuf sb = STRBUF_INIT;
> const char *gitfile;
> const char *shallow_file;
>
> @@ -134,12 +135,9 @@ static void setup_git_env(void)
> git_dir = DEFAULT_GIT_DIR_ENVIRONMENT;
> gitfile = read_gitfile(git_dir);
> git_dir = xstrdup(gitfile ? gitfile : git_dir);
> - git_common_dir = getenv(GIT_COMMON_DIR_ENVIRONMENT);
> - if (git_common_dir) {
> + if (get_common_dir(&sb, git_dir))
> git_common_dir_env = 1;
> - git_common_dir = xstrdup(git_common_dir);
> - } else
> - git_common_dir = git_dir;
> + git_common_dir = strbuf_detach(&sb, NULL);
> git_object_dir = getenv(DB_ENVIRONMENT);
> if (!git_object_dir) {
> git_object_dir = xmalloc(strlen(git_common_dir) + 9);
> diff --git a/setup.c b/setup.c
> index e56ec11..d4ac878 100644
> --- a/setup.c
> +++ b/setup.c
> @@ -170,14 +170,15 @@ void verify_non_filename(const char *prefix, const char *arg)
> "'git <command> [<revision>...] -- [<file>...]'", arg);
> }
>
> -static void get_common_dir(struct strbuf *sb, const char *gitdir)
> +int get_common_dir(struct strbuf *sb, const char *gitdir)
> {
> struct strbuf data = STRBUF_INIT;
> struct strbuf path = STRBUF_INIT;
> const char *git_common_dir = getenv(GIT_COMMON_DIR_ENVIRONMENT);
> + int ret = 0;
> if (git_common_dir) {
> strbuf_addstr(sb, git_common_dir);
> - return;
> + return 1;
> }
> strbuf_addf(&path, "%s/commondir", gitdir);
> if (file_exists(path.buf)) {
> @@ -189,10 +190,12 @@ static void get_common_dir(struct strbuf *sb, const char *gitdir)
> strbuf_addf(&path, "%s/", gitdir);
> strbuf_addbuf(&path, &data);
> strbuf_addstr(sb, real_path(path.buf));
> + ret = 1;
> } else
> strbuf_addstr(sb, gitdir);
> strbuf_release(&data);
> strbuf_release(&path);
> + return ret;
> }
>
> /*
> @@ -279,13 +282,26 @@ void setup_work_tree(void)
> initialized = 1;
> }
>
> +static int check_repo_format(const char *var, const char *value, void *cb)
> +{
> + if (strcmp(var, "core.repositoryformatversion") == 0)
> + repository_format_version = git_config_int(var, value);
> + else if (strcmp(var, "core.sharedrepository") == 0)
> + shared_repository = git_config_perm(var, value);
> + return 0;
> +}
> +
> static int check_repository_format_gently(const char *gitdir, int *nongit_ok)
> {
> struct strbuf sb = STRBUF_INIT;
> const char *repo_config;
> + config_fn_t fn;
> int ret = 0;
>
> - get_common_dir(&sb, gitdir);
> + if (get_common_dir(&sb, gitdir))
> + fn = check_repo_format;
> + else
> + fn = check_repository_format_version;
> strbuf_addstr(&sb, "/config");
> repo_config = sb.buf;
>
> @@ -298,7 +314,7 @@ static int check_repository_format_gently(const char *gitdir, int *nongit_ok)
> * Use a gentler version of git_config() to check if this repo
> * is a good one.
> */
> - git_config_early(check_repository_format_version, NULL, repo_config);
> + git_config_early(fn, NULL, repo_config);
> if (GIT_REPO_VERSION < repository_format_version) {
> if (!nongit_ok)
> die ("Expected git repo version <= %d, found %d",
> @@ -770,11 +786,10 @@ int git_config_perm(const char *var, const char *value)
>
> int check_repository_format_version(const char *var, const char *value, void *cb)
> {
> - if (strcmp(var, "core.repositoryformatversion") == 0)
> - repository_format_version = git_config_int(var, value);
> - else if (strcmp(var, "core.sharedrepository") == 0)
> - shared_repository = git_config_perm(var, value);
> - else if (strcmp(var, "core.bare") == 0) {
> + int ret = check_repo_format(var, value, cb);
> + if (ret)
> + return ret;
> + if (strcmp(var, "core.bare") == 0) {
> is_bare_repository_cfg = git_config_bool(var, value);
> if (is_bare_repository_cfg == 1)
> inside_work_tree = -1;
> diff --git a/t/t1501-worktree.sh b/t/t1501-worktree.sh
> index 8f36aa9..d8bdaf4 100755
> --- a/t/t1501-worktree.sh
> +++ b/t/t1501-worktree.sh
> @@ -346,4 +346,80 @@ test_expect_success 'relative $GIT_WORK_TREE and git subprocesses' '
> test_cmp expected actual
> '
>
> +test_expect_success 'Multi-worktree setup' '
> + mkdir work &&
> + mkdir -p repo.git/repos/foo &&
> + cp repo.git/HEAD repo.git/index repo.git/repos/foo &&
> + unset GIT_DIR GIT_CONFIG GIT_WORK_TREE
> +'
> +
> +test_expect_success 'GIT_DIR set (1)' '
> + echo "gitdir: repo.git/repos/foo" >gitfile &&
> + echo ../.. >repo.git/repos/foo/commondir &&
> + (
> + cd work &&
> + GIT_DIR=../gitfile git rev-parse --git-common-dir >actual &&
> + echo "$TRASH_DIRECTORY/repo.git" >expect &&
> + test_cmp expect actual
> + )
> +'
> +
> +test_expect_success 'GIT_DIR set (2)' '
> + echo "gitdir: repo.git/repos/foo" >gitfile &&
> + echo "$TRASH_DIRECTORY/repo.git" >repo.git/repos/foo/commondir &&
> + (
> + cd work &&
> + GIT_DIR=../gitfile git rev-parse --git-common-dir >actual &&
> + echo "$TRASH_DIRECTORY/repo.git" >expect &&
> + test_cmp expect actual
> + )
> +'
> +
> +test_expect_success 'Auto discovery' '
> + echo "gitdir: repo.git/repos/foo" >.git &&
> + echo ../.. >repo.git/repos/foo/commondir &&
> + (
> + cd work &&
> + git rev-parse --git-common-dir >actual &&
> + echo "$TRASH_DIRECTORY/repo.git" >expect &&
> + test_cmp expect actual &&
> + echo haha >data1 &&
> + git add data1 &&
> + git ls-files --full-name :/ | grep data1 >actual &&
> + echo work/data1 >expect &&
> + test_cmp expect actual
> + )
> +'
> +
> +test_expect_success '$GIT_DIR/common overrides core.worktree' '
> + mkdir elsewhere &&
> + git --git-dir=repo.git config core.worktree "$TRASH_DIRECTORY/elsewhere" &&
> + echo "gitdir: repo.git/repos/foo" >.git &&
> + echo ../.. >repo.git/repos/foo/commondir &&
> + (
> + cd work &&
> + git rev-parse --git-common-dir >actual &&
> + echo "$TRASH_DIRECTORY/repo.git" >expect &&
> + test_cmp expect actual &&
> + echo haha >data2 &&
> + git add data2 &&
> + git ls-files --full-name :/ | grep data2 >actual &&
> + echo work/data2 >expect &&
> + test_cmp expect actual
> + )
> +'
> +
> +test_expect_success '$GIT_WORK_TREE overrides $GIT_DIR/common' '
> + echo "gitdir: repo.git/repos/foo" >.git &&
> + echo ../.. >repo.git/repos/foo/commondir &&
> + (
> + cd work &&
> + echo haha >data3 &&
> + git --git-dir=../.git --work-tree=. add data3 &&
> + git ls-files --full-name -- :/ | grep data3 >actual &&
> + echo data3 >expect &&
> + test_cmp expect actual
> + )
> +'
> +
> test_done
> diff --git a/t/t1510-repo-setup.sh b/t/t1510-repo-setup.sh
> index cf2ee78..c211ef5 100755
> --- a/t/t1510-repo-setup.sh
> +++ b/t/t1510-repo-setup.sh
> @@ -106,6 +106,7 @@ setup_env () {
> expect () {
> cat >"$1/expected" <<-EOF
> setup: git_dir: $2
> + setup: git_common_dir: $2
> setup: worktree: $3
> setup: cwd: $4
> setup: prefix: $5
> diff --git a/trace.c b/trace.c
> index 08180a9..a594761 100644
> --- a/trace.c
> +++ b/trace.c
> @@ -173,6 +173,7 @@ void trace_repo_setup(const char *prefix)
> prefix = "(null)";
>
> trace_printf_key(key, "setup: git_dir: %s\n", quote_crnl(get_git_dir()));
> + trace_printf_key(key, "setup: git_common_dir: %s\n", quote_crnl(get_git_common_dir()));
> trace_printf_key(key, "setup: worktree: %s\n", quote_crnl(git_work_tree));
> trace_printf_key(key, "setup: cwd: %s\n", quote_crnl(cwd));
> trace_printf_key(key, "setup: prefix: %s\n", quote_crnl(prefix));
Did I report that t1501 fails when there is a softlink in $PWD ?
/home/tb/projects is a softlink to /disc5/projects/
(And in total 4 TC failed)
--------------
expecting success:
echo "gitdir: repo.git/repos/foo" >gitfile &&
echo ../.. >repo.git/repos/foo/commondir &&
(
cd work &&
GIT_DIR=../gitfile git rev-parse --git-common-dir >actual &&
echo "$TRASH_DIRECTORY/repo.git" >expect &&
test_cmp expect actual
)
--- expect 2014-03-24 07:55:29.895870540 +0000
+++ actual 2014-03-24 07:55:29.895870540 +0000
@@ -1 +1 @@
-/home/tb/projects/git/git.pu/t/trash directory.t1501-worktree/repo.git
+/disc5/projects/git/git.pu/t/trash directory.t1501-worktree/repo.git
not ok 33 - GIT_DIR set (1)
next prev parent reply other threads:[~2014-03-24 14:52 UTC|newest]
Thread overview: 169+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-18 13:39 [PATCH v3 00/25] Support multiple checkouts Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 01/25] path.c: make get_pathname() return strbuf instead of static buffer Nguyễn Thái Ngọc Duy
2014-02-19 20:28 ` Junio C Hamano
2014-02-19 23:26 ` Junio C Hamano
2014-03-01 2:40 ` Duy Nguyen
2014-03-03 17:56 ` Junio C Hamano
2014-02-18 13:39 ` [PATCH v3 02/25] Convert git_snpath() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2014-02-19 23:48 ` Junio C Hamano
2014-02-19 23:54 ` Duy Nguyen
2014-02-20 3:41 ` Junio C Hamano
2014-02-20 3:55 ` Duy Nguyen
2014-02-20 18:54 ` Junio C Hamano
2014-02-20 19:44 ` Junio C Hamano
2014-02-18 13:39 ` [PATCH v3 03/25] path.c: rename vsnpath() to do_git_path() Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 04/25] path.c: group git_path(), git_pathdup() and strbuf_git_path() together Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 05/25] Make git_path() aware of file relocation in $GIT_DIR Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 06/25] *.sh: respect $GIT_INDEX_FILE Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 07/25] reflog: avoid constructing .lock path with git_path Nguyễn Thái Ngọc Duy
2014-02-25 22:44 ` Junio C Hamano
2014-03-01 3:42 ` Duy Nguyen
2014-03-03 18:07 ` Junio C Hamano
2014-02-18 13:39 ` [PATCH v3 08/25] fast-import: use git_path() for accessing .git dir instead of get_git_dir() Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 09/25] commit: use SEQ_DIR instead of hardcoding "sequencer" Nguyễn Thái Ngọc Duy
2014-02-18 13:39 ` [PATCH v3 10/25] Add new environment variable $GIT_COMMON_DIR Nguyễn Thái Ngọc Duy
2014-02-26 1:24 ` Eric Sunshine
2014-02-26 10:55 ` Duy Nguyen
2014-02-26 16:12 ` Philip Oakley
2014-02-26 17:23 ` Eric Sunshine
2014-02-26 19:43 ` Eric Sunshine
2014-02-26 23:58 ` Junio C Hamano
2014-02-27 3:03 ` Duy Nguyen
2014-02-18 13:40 ` [PATCH v3 11/25] git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects Nguyễn Thái Ngọc Duy
2014-02-27 0:00 ` Junio C Hamano
2014-02-18 13:40 ` [PATCH v3 12/25] *.sh: avoid hardcoding $GIT_DIR/hooks/ Nguyễn Thái Ngọc Duy
2014-02-18 13:40 ` [PATCH v3 13/25] git-stash: avoid hardcoding $GIT_DIR/logs/ Nguyễn Thái Ngọc Duy
2014-02-18 13:40 ` [PATCH v3 14/25] setup.c: convert is_git_directory() to use strbuf Nguyễn Thái Ngọc Duy
2014-02-19 20:17 ` Junio C Hamano
2014-02-20 13:04 ` Duy Nguyen
2014-02-20 19:06 ` Junio C Hamano
2014-02-20 19:36 ` Junio C Hamano
2014-03-01 2:50 ` [PATCH] strbuf: style fix -- top opening bracket on a separate line Nguyễn Thái Ngọc Duy
2014-02-21 3:38 ` [PATCH v3 14/25] setup.c: convert is_git_directory() to use strbuf Eric Sunshine
2014-02-18 13:40 ` [PATCH v3 15/25] setup.c: detect $GIT_COMMON_DIR in is_git_directory() Nguyễn Thái Ngọc Duy
2014-02-27 0:16 ` Junio C Hamano
2014-03-01 3:33 ` Duy Nguyen
2014-02-18 13:40 ` [PATCH v3 16/25] setup.c: convert check_repository_format_gently to use strbuf Nguyễn Thái Ngọc Duy
2014-02-27 0:18 ` Junio C Hamano
2014-02-18 13:40 ` [PATCH v3 17/25] setup.c: detect $GIT_COMMON_DIR check_repository_format_gently() Nguyễn Thái Ngọc Duy
2014-02-27 0:22 ` Junio C Hamano
2014-02-27 2:43 ` Duy Nguyen
2014-02-27 17:48 ` Junio C Hamano
2014-02-18 13:40 ` [PATCH v3 18/25] setup.c: support multi-checkout repo setup Nguyễn Thái Ngọc Duy
2014-02-19 20:19 ` Junio C Hamano
2014-02-27 20:28 ` Junio C Hamano
2014-03-24 14:52 ` Torsten Bögershausen [this message]
2014-03-25 13:52 ` Duy Nguyen
2014-03-25 14:07 ` Duy Nguyen
2014-03-26 21:03 ` Junio C Hamano
2014-02-18 13:40 ` [PATCH v3 19/25] wrapper.c: wrapper to open a file, fprintf then close Nguyễn Thái Ngọc Duy
2014-02-18 13:40 ` [PATCH v3 20/25] use new wrapper write_file() for simple file writing Nguyễn Thái Ngọc Duy
2014-02-18 13:40 ` [PATCH v3 21/25] checkout: support checking out into a new working directory Nguyễn Thái Ngọc Duy
2014-02-26 20:06 ` Eric Sunshine
2014-02-26 23:19 ` Duy Nguyen
2014-02-27 6:59 ` Eric Sunshine
2014-02-18 13:40 ` [PATCH v3 22/25] checkout: clean up half-prepared directories in --to mode Nguyễn Thái Ngọc Duy
2014-02-18 13:40 ` [PATCH v3 23/25] checkout: detach if the branch is already checked out elsewhere Nguyễn Thái Ngọc Duy
2014-02-19 20:20 ` Junio C Hamano
2014-02-19 21:52 ` Eric Sunshine
2014-02-18 13:40 ` [PATCH v3 24/25] prune: strategies for linked checkouts Nguyễn Thái Ngọc Duy
2014-02-19 20:32 ` Junio C Hamano
2014-02-19 20:42 ` Junio C Hamano
2014-02-20 13:15 ` Duy Nguyen
2014-02-20 19:55 ` Junio C Hamano
2014-02-19 22:08 ` Eric Sunshine
2014-02-19 22:53 ` Eric Sunshine
2014-02-20 13:19 ` Duy Nguyen
2014-02-18 13:40 ` [PATCH v3 25/25] gc: support prune --repos Nguyễn Thái Ngọc Duy
2014-02-19 20:22 ` Junio C Hamano
2014-02-19 20:57 ` [PATCH v3 00/25] Support multiple checkouts Junio C Hamano
2014-03-01 12:12 ` [PATCH v4 00/27] " Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 01/27] path.c: make get_pathname() return strbuf instead of static buffer Nguyễn Thái Ngọc Duy
2014-03-02 19:51 ` Eric Sunshine
2014-03-03 0:14 ` Duy Nguyen
2014-03-01 12:12 ` [PATCH v4 02/27] Convert git_snpath() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2014-03-03 0:02 ` Eric Sunshine
2014-03-03 0:15 ` Duy Nguyen
2014-03-07 5:03 ` Duy Nguyen
2014-03-07 5:26 ` Eric Sunshine
2014-03-01 12:12 ` [PATCH v4 03/27] path.c: rename vsnpath() to do_git_path() Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 04/27] path.c: group git_path(), git_pathdup() and strbuf_git_path() together Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 05/27] Make git_path() aware of file relocation in $GIT_DIR Nguyễn Thái Ngọc Duy
2014-03-03 1:34 ` Eric Sunshine
2014-03-01 12:12 ` [PATCH v4 06/27] *.sh: respect $GIT_INDEX_FILE Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 07/27] reflog: avoid constructing .lock path with git_path Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 08/27] fast-import: use git_path() for accessing .git dir instead of get_git_dir() Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 09/27] commit: use SEQ_DIR instead of hardcoding "sequencer" Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 10/27] Add new environment variable $GIT_COMMON_DIR Nguyễn Thái Ngọc Duy
2014-03-03 7:29 ` Eric Sunshine
2014-03-01 12:12 ` [PATCH v4 11/27] git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 12/27] *.sh: avoid hardcoding $GIT_DIR/hooks/ Nguyễn Thái Ngọc Duy
2014-03-03 8:31 ` Eric Sunshine
2014-03-01 12:12 ` [PATCH v4 13/27] git-stash: avoid hardcoding $GIT_DIR/logs/ Nguyễn Thái Ngọc Duy
2014-03-01 15:50 ` Torsten Bögershausen
2014-03-01 12:12 ` [PATCH v4 14/27] setup.c: convert is_git_directory() to use strbuf Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 15/27] setup.c: detect $GIT_COMMON_DIR in is_git_directory() Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 16/27] setup.c: convert check_repository_format_gently to use strbuf Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 17/27] setup.c: detect $GIT_COMMON_DIR check_repository_format_gently() Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 18/27] setup.c: support multi-checkout repo setup Nguyễn Thái Ngọc Duy
2014-03-05 19:42 ` Junio C Hamano
2014-03-08 1:55 ` Duy Nguyen
2014-03-01 12:12 ` [PATCH v4 19/27] wrapper.c: wrapper to open a file, fprintf then close Nguyễn Thái Ngọc Duy
2014-03-01 17:11 ` Torsten Bögershausen
2014-03-04 2:47 ` Eric Sunshine
2014-03-01 12:12 ` [PATCH v4 20/27] use new wrapper write_file() for simple file writing Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 21/27] checkout: support checking out into a new working directory Nguyễn Thái Ngọc Duy
2014-03-01 12:12 ` [PATCH v4 22/27] checkout: clean up half-prepared directories in --to mode Nguyễn Thái Ngọc Duy
2014-03-06 10:06 ` Eric Sunshine
2014-03-01 12:12 ` [PATCH v4 23/27] checkout: detach if the branch is already checked out elsewhere Nguyễn Thái Ngọc Duy
2014-03-01 12:13 ` [PATCH v4 24/27] prune: strategies for linked checkouts Nguyễn Thái Ngọc Duy
2014-03-01 17:12 ` Torsten Bögershausen
2014-03-02 0:01 ` Duy Nguyen
2014-03-05 20:07 ` Junio C Hamano
2014-03-01 12:13 ` [PATCH v4 25/27] gc: style change -- no SP before closing bracket Nguyễn Thái Ngọc Duy
2014-03-01 12:13 ` [PATCH v4 26/27] gc: support prune --repos Nguyễn Thái Ngọc Duy
2014-03-07 6:40 ` Eric Sunshine
2014-03-01 12:13 ` [PATCH v4 27/27] count-objects: report unused files in $GIT_DIR/repos/ Nguyễn Thái Ngọc Duy
2014-03-05 4:25 ` Eric Sunshine
2014-03-05 12:08 ` Duy Nguyen
2014-03-08 2:47 ` [PATCH v5 00/28] Support multiple checkouts Nguyễn Thái Ngọc Duy
2014-03-08 2:47 ` [PATCH v5 01/28] path.c: make get_pathname() return strbuf instead of static buffer Nguyễn Thái Ngọc Duy
2014-03-08 6:11 ` Torsten Bögershausen
2014-03-08 8:57 ` Duy Nguyen
2014-03-08 2:47 ` [PATCH v5 02/28] path.c: make get_pathname() call sites return const char * Nguyễn Thái Ngọc Duy
2014-03-08 2:47 ` [PATCH v5 03/28] Convert git_snpath() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2014-03-17 18:11 ` Junio C Hamano
2014-03-08 2:47 ` [PATCH v5 04/28] path.c: rename vsnpath() to do_git_path() Nguyễn Thái Ngọc Duy
2014-03-08 2:47 ` [PATCH v5 05/28] path.c: group git_path(), git_pathdup() and strbuf_git_path() together Nguyễn Thái Ngọc Duy
2014-03-08 2:47 ` [PATCH v5 06/28] Make git_path() aware of file relocation in $GIT_DIR Nguyễn Thái Ngọc Duy
2014-03-09 8:19 ` Eric Sunshine
2014-03-08 2:47 ` [PATCH v5 07/28] *.sh: respect $GIT_INDEX_FILE Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 08/28] reflog: avoid constructing .lock path with git_path Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 09/28] fast-import: use git_path() for accessing .git dir instead of get_git_dir() Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 10/28] commit: use SEQ_DIR instead of hardcoding "sequencer" Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 11/28] Add new environment variable $GIT_COMMON_DIR Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 12/28] git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 13/28] *.sh: avoid hardcoding $GIT_DIR/hooks/ Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 14/28] git-stash: avoid hardcoding $GIT_DIR/logs/ Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 15/28] setup.c: convert is_git_directory() to use strbuf Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 16/28] setup.c: detect $GIT_COMMON_DIR in is_git_directory() Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 17/28] setup.c: convert check_repository_format_gently to use strbuf Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 18/28] setup.c: detect $GIT_COMMON_DIR check_repository_format_gently() Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 19/28] setup.c: support multi-checkout repo setup Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 20/28] wrapper.c: wrapper to open a file, fprintf then close Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 21/28] use new wrapper write_file() for simple file writing Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 22/28] checkout: support checking out into a new working directory Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 23/28] checkout: clean up half-prepared directories in --to mode Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 24/28] checkout: detach if the branch is already checked out elsewhere Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 25/28] prune: strategies for linked checkouts Nguyễn Thái Ngọc Duy
2014-03-09 8:20 ` Eric Sunshine
2014-03-08 2:48 ` [PATCH v5 26/28] gc: style change -- no SP before closing bracket Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 27/28] gc: support prune --repos Nguyễn Thái Ngọc Duy
2014-03-08 2:48 ` [PATCH v5 28/28] count-objects: report unused files in $GIT_DIR/repos/ Nguyễn Thái Ngọc Duy
2014-03-09 8:21 ` Eric Sunshine
2014-03-09 11:25 ` Duy Nguyen
2014-03-09 8:18 ` [PATCH v5 00/28] Support multiple checkouts Eric Sunshine
2014-07-06 20:46 ` Max Kirillov
2014-07-07 10:25 ` Duy Nguyen
2014-07-07 10:49 ` Dennis Kaarsemaker
2014-07-07 17:32 ` Max Kirillov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5330469D.9020008@web.de \
--to=tboegi@web.de \
--cc=git@vger.kernel.org \
--cc=pclouds@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).