git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: pclouds@gmail.com
Cc: bmwill@google.com, git@vger.kernel.org, gitster@pobox.com,
	jonathantanmy@google.com, sbeller@google.com,
	sunshine@sunshineco.com
Subject: [PATCH v3 1/4] repository.c: move env-related setup code back to environment.c
Date: Wed, 28 Feb 2018 08:37:24 +0700	[thread overview]
Message-ID: <20180228013727.13815-2-pclouds@gmail.com> (raw)
In-Reply-To: <20180228013727.13815-1-pclouds@gmail.com>

It does not make sense that generic repository code contains handling
of environment variables, which are specific for the main repository
only. Refactor repo_set_gitdir() function to take $GIT_DIR and
optionally _all_ other customizable paths. These optional paths can be
NULL and will be calculated according to the default directory layout.

Note that some dead functions are left behind to reduce diff
noise. They will be deleted in the next patch.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 cache.h       |  2 +-
 environment.c | 30 +++++++++++++++++++++++---
 repository.c  | 59 ++++++++++++++++++++++++++++++++++-----------------
 repository.h  | 11 +++++++++-
 setup.c       |  3 +--
 5 files changed, 79 insertions(+), 26 deletions(-)

diff --git a/cache.h b/cache.h
index 5717399183..b164a407eb 100644
--- a/cache.h
+++ b/cache.h
@@ -459,7 +459,7 @@ static inline enum object_type object_type(unsigned int mode)
  */
 extern const char * const local_repo_env[];
 
-extern void setup_git_env(void);
+extern void setup_git_env(const char *git_dir);
 
 /*
  * Returns true iff we have a configured git repository (either via
diff --git a/environment.c b/environment.c
index ec10b062e6..454e435bed 100644
--- a/environment.c
+++ b/environment.c
@@ -14,6 +14,7 @@
 #include "fmt-merge-msg.h"
 #include "commit.h"
 #include "object-store.h"
+#include "argv-array.h"
 
 int trust_executable_bit = 1;
 int trust_ctime = 1;
@@ -148,10 +149,34 @@ static char *expand_namespace(const char *raw_namespace)
 	return strbuf_detach(&buf, NULL);
 }
 
-void setup_git_env(void)
+/*
+ * Wrapper of getenv() that returns a strdup value. This value is kept
+ * in argv to be freed later.
+ */
+static const char *getenv_safe(struct argv_array *argv, const char *name)
+{
+	const char *value = getenv(name);
+
+	if (!value)
+		return NULL;
+
+	argv_array_push(argv, value);
+	return argv->argv[argv->argc - 1];
+}
+
+void setup_git_env(const char *git_dir)
 {
 	const char *shallow_file;
 	const char *replace_ref_base;
+	struct set_gitdir_args args = { NULL };
+	struct argv_array to_free = ARGV_ARRAY_INIT;
+
+	args.commondir = getenv_safe(&to_free, GIT_COMMON_DIR_ENVIRONMENT);
+	args.object_dir = getenv_safe(&to_free, DB_ENVIRONMENT);
+	args.graft_file = getenv_safe(&to_free, GRAFT_ENVIRONMENT);
+	args.index_file = getenv_safe(&to_free, INDEX_ENVIRONMENT);
+	repo_set_gitdir(the_repository, git_dir, &args);
+	argv_array_clear(&to_free);
 
 	if (getenv(NO_REPLACE_OBJECTS_ENVIRONMENT))
 		check_replace_refs = 0;
@@ -301,8 +326,7 @@ int set_git_dir(const char *path)
 {
 	if (setenv(GIT_DIR_ENVIRONMENT, path, 1))
 		return error("Could not set GIT_DIR to '%s'", path);
-	repo_set_gitdir(the_repository, path);
-	setup_git_env();
+	setup_git_env(path);
 	return 0;
 }
 
diff --git a/repository.c b/repository.c
index a069b1b640..ae117efbf0 100644
--- a/repository.c
+++ b/repository.c
@@ -41,35 +41,55 @@ static int find_common_dir(struct strbuf *sb, const char *gitdir, int fromenv)
 	return get_common_dir_noenv(sb, gitdir);
 }
 
-static void repo_setup_env(struct repository *repo)
+static void expand_base_dir(char **out, const char *in,
+			    const char *base_dir, const char *def_in)
+{
+	free(*out);
+	if (in)
+		*out = xstrdup(in);
+	else
+		*out = xstrfmt("%s/%s", base_dir, def_in);
+}
+
+static void repo_set_commondir(struct repository *repo,
+			       const char *commondir)
 {
 	struct strbuf sb = STRBUF_INIT;
 
-	repo->different_commondir = find_common_dir(&sb, repo->gitdir,
-						    !repo->ignore_env);
 	free(repo->commondir);
+
+	if (commondir) {
+		repo->different_commondir = 1;
+		repo->commondir = xstrdup(commondir);
+		return;
+	}
+
+	repo->different_commondir = get_common_dir_noenv(&sb, repo->gitdir);
 	repo->commondir = strbuf_detach(&sb, NULL);
-	raw_object_store_clear(&repo->objects);
-	repo->objects.objectdir =
-		git_path_from_env(DB_ENVIRONMENT, repo->commondir,
-				  "objects", !repo->ignore_env);
-	free(repo->graft_file);
-	repo->graft_file = git_path_from_env(GRAFT_ENVIRONMENT, repo->commondir,
-					     "info/grafts", !repo->ignore_env);
-	free(repo->index_file);
-	repo->index_file = git_path_from_env(INDEX_ENVIRONMENT, repo->gitdir,
-					     "index", !repo->ignore_env);
 }
 
-void repo_set_gitdir(struct repository *repo, const char *path)
+void repo_set_gitdir(struct repository *repo,
+		     const char *root,
+		     const struct set_gitdir_args *o)
 {
-	const char *gitfile = read_gitfile(path);
+	const char *gitfile = read_gitfile(root);
+	/*
+	 * repo->gitdir is saved because the caller could pass "root"
+	 * that also points to repo->gitdir. We want to keep it alive
+	 * until after xstrdup(root). Then we can free it.
+	 */
 	char *old_gitdir = repo->gitdir;
 
-	repo->gitdir = xstrdup(gitfile ? gitfile : path);
-	repo_setup_env(repo);
-
+	repo->gitdir = xstrdup(gitfile ? gitfile : root);
 	free(old_gitdir);
+
+	repo_set_commondir(repo, o->commondir);
+	expand_base_dir(&repo->objects.objectdir, o->object_dir,
+			repo->commondir, "objects");
+	expand_base_dir(&repo->graft_file, o->graft_file,
+			repo->commondir, "info/grafts");
+	expand_base_dir(&repo->index_file, o->index_file,
+			repo->gitdir, "index");
 }
 
 void repo_set_hash_algo(struct repository *repo, int hash_algo)
@@ -87,6 +107,7 @@ static int repo_init_gitdir(struct repository *repo, const char *gitdir)
 	int error = 0;
 	char *abspath = NULL;
 	const char *resolved_gitdir;
+	struct set_gitdir_args args = { NULL };
 
 	abspath = real_pathdup(gitdir, 0);
 	if (!abspath) {
@@ -101,7 +122,7 @@ static int repo_init_gitdir(struct repository *repo, const char *gitdir)
 		goto out;
 	}
 
-	repo_set_gitdir(repo, resolved_gitdir);
+	repo_set_gitdir(repo, resolved_gitdir, &args);
 
 out:
 	free(abspath);
diff --git a/repository.h b/repository.h
index fa73ab8e93..f917baa584 100644
--- a/repository.h
+++ b/repository.h
@@ -89,7 +89,16 @@ struct repository {
 
 extern struct repository *the_repository;
 
-extern void repo_set_gitdir(struct repository *repo, const char *path);
+struct set_gitdir_args {
+	const char *commondir;
+	const char *object_dir;
+	const char *graft_file;
+	const char *index_file;
+};
+
+extern void repo_set_gitdir(struct repository *repo,
+			    const char *root,
+			    const struct set_gitdir_args *optional);
 extern void repo_set_worktree(struct repository *repo, const char *path);
 extern void repo_set_hash_algo(struct repository *repo, int algo);
 extern int repo_init(struct repository *repo, const char *gitdir, const char *worktree);
diff --git a/setup.c b/setup.c
index c5d55dcee4..6fac1bb58a 100644
--- a/setup.c
+++ b/setup.c
@@ -1116,8 +1116,7 @@ const char *setup_git_directory_gently(int *nongit_ok)
 			const char *gitdir = getenv(GIT_DIR_ENVIRONMENT);
 			if (!gitdir)
 				gitdir = DEFAULT_GIT_DIR_ENVIRONMENT;
-			repo_set_gitdir(the_repository, gitdir);
-			setup_git_env();
+			setup_git_env(gitdir);
 		}
 		if (startup_info->have_repository)
 			repo_set_hash_algo(the_repository, repo_fmt.hash_algo);
-- 
2.16.1.399.g632f88eed1


  reply	other threads:[~2018-02-28  1:37 UTC|newest]

Thread overview: 239+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-13  1:22 [PATCH 00/26] Moving global state into the repository object (part 1) Stefan Beller
2018-02-13  1:22 ` [PATCH 01/26] repository: introduce raw object store field Stefan Beller
2018-02-13  1:22 ` [PATCH 02/26] object-store: move alt_odb_list and alt_odb_tail to object store Stefan Beller
2018-02-13 18:51   ` Brandon Williams
2018-02-13 19:46     ` Stefan Beller
2018-02-13  1:22 ` [PATCH 03/26] object-store: free alt_odb_list Stefan Beller
2018-02-13  1:22 ` [PATCH 04/26] object-store: move packed_git and packed_git_mru to object store Stefan Beller
2018-02-13  1:22 ` [PATCH 05/26] object-store: close all packs upon clearing the " Stefan Beller
2018-02-13  1:22 ` [PATCH 06/26] pack: move prepare_packed_git_run_once to " Stefan Beller
2018-02-13  1:22 ` [PATCH 07/26] pack: move approximate object count " Stefan Beller
2018-02-13  1:22 ` [PATCH 08/26] sha1_file: add raw_object_store argument to alt_odb_usable Stefan Beller
2018-02-13  1:22 ` [PATCH 09/26] sha1_file: add repository argument to link_alt_odb_entry Stefan Beller
2018-02-13  1:22 ` [PATCH 10/26] sha1_file: add repository argument to read_info_alternates Stefan Beller
2018-02-13  1:22 ` [PATCH 11/26] sha1_file: add repository argument to link_alt_odb_entries Stefan Beller
2018-02-13  1:22 ` [PATCH 12/26] sha1_file: add repository argument to prepare_alt_odb Stefan Beller
2018-02-13  1:22 ` [PATCH 13/26] sha1_file: allow link_alt_odb_entries to handle arbitrary repositories Stefan Beller
2018-02-13  1:22 ` [PATCH 14/26] sha1_file: allow prepare_alt_odb " Stefan Beller
2018-02-14  0:37   ` Duy Nguyen
2018-02-14 18:08     ` Brandon Williams
2018-02-23  9:56       ` [PATCH 0/2] Fix initializing the_hash_algo Nguyễn Thái Ngọc Duy
2018-02-23  9:56         ` [PATCH 1/2] setup.c: initialize the_repository correctly in all cases Nguyễn Thái Ngọc Duy
2018-02-23 22:17           ` brian m. carlson
2018-02-24  3:17             ` Duy Nguyen
2018-02-23  9:56         ` [PATCH 2/2] Revert "repository: pre-initialize hash algo pointer" Nguyễn Thái Ngọc Duy
2018-02-23 18:24           ` Stefan Beller
2018-02-23 19:50             ` Junio C Hamano
2018-02-23 20:04               ` Stefan Beller
2018-02-23 22:26                 ` Junio C Hamano
2018-02-23 22:29           ` brian m. carlson
2018-02-23 23:16             ` Brandon Williams
2018-02-24  3:44             ` Duy Nguyen
2018-02-26 23:09               ` Junio C Hamano
2018-03-03  1:51                 ` Duy Nguyen
2018-02-23 22:47         ` [PATCH 0/2] Fix initializing the_hash_algo brian m. carlson
2018-02-24  3:34         ` [PATCH v2 0/5] " Nguyễn Thái Ngọc Duy
2018-02-24  3:34           ` [PATCH v2 1/5] setup.c: initialize the_repository correctly in all cases Nguyễn Thái Ngọc Duy
2018-02-24  3:34           ` [PATCH v2 2/5] sha1_file.c: keep a good name for "unknown" hash_algos[UNKNOWN] Nguyễn Thái Ngọc Duy
2018-02-24 22:39             ` brian m. carlson
2018-02-24  3:34           ` [PATCH v2 3/5] index-pack: check (and optionally set) hash algo based on input file Nguyễn Thái Ngọc Duy
2018-02-24 22:56             ` brian m. carlson
2018-02-24  3:34           ` [PATCH v2 4/5] diff.c: initialize hash algo when running in --no-index mode Nguyễn Thái Ngọc Duy
2018-02-24  8:15             ` Eric Sunshine
2018-02-24 13:45               ` Duy Nguyen
2018-02-24 14:36             ` Duy Nguyen
2018-02-24 22:29               ` brian m. carlson
2018-02-24  3:34           ` [PATCH v2 5/5] Revert "repository: pre-initialize hash algo pointer" Nguyễn Thái Ngọc Duy
2018-02-24 22:58             ` brian m. carlson
2018-02-25  3:29               ` Duy Nguyen
2018-02-25 20:28                 ` brian m. carlson
2018-02-25 11:18           ` [PATCH v3 0/6] Fix initializing the_hash_algo Nguyễn Thái Ngọc Duy
2018-02-25 11:18             ` [PATCH v3 1/6] setup.c: initialize the_repository correctly in all cases Nguyễn Thái Ngọc Duy
2018-02-25 11:18             ` [PATCH v3 2/6] sha1_file.c: keep a good name for "unknown" hash_algos[UNKNOWN] Nguyễn Thái Ngọc Duy
2018-02-25 11:18             ` [PATCH v3 3/6] cache.h: make the_hash_algo read-only Nguyễn Thái Ngọc Duy
2018-02-25 11:18             ` [PATCH v3 4/6] index-pack: check (and optionally set) hash algo based on input file Nguyễn Thái Ngọc Duy
2018-02-25 11:18             ` [PATCH v3 5/6] diff.c: initialize hash algo when running in --no-index mode Nguyễn Thái Ngọc Duy
2018-02-25 11:18             ` [PATCH v3 6/6] Revert "repository: pre-initialize hash algo pointer" Nguyễn Thái Ngọc Duy
2018-02-25 20:34             ` [PATCH v3 0/6] Fix initializing the_hash_algo brian m. carlson
2018-02-26 19:20               ` Stefan Beller
2018-02-26 10:30       ` [PATCH 0/4] Delete ignore_env member in struct repository Nguyễn Thái Ngọc Duy
2018-02-26 10:30         ` [PATCH 1/4] repository.c: move env-related setup code back to environment.c Nguyễn Thái Ngọc Duy
2018-02-26 18:57           ` Eric Sunshine
2018-02-27  9:11             ` Duy Nguyen
2018-02-27  9:39             ` Duy Nguyen
2018-02-26 20:30           ` Stefan Beller
2018-02-27  0:28             ` Duy Nguyen
2018-02-26 10:30         ` [PATCH 2/4] repository.c: delete dead functions Nguyễn Thái Ngọc Duy
2018-02-26 10:30         ` [PATCH 3/4] sha1_file.c: move delayed getenv(altdb) back to setup_git_env() Nguyễn Thái Ngọc Duy
2018-02-26 10:30         ` [PATCH 4/4] repository: delete ignore_env member Nguyễn Thái Ngọc Duy
2018-02-26 18:07         ` [PATCH 0/4] Delete ignore_env member in struct repository Junio C Hamano
2018-02-26 20:46         ` Stefan Beller
2018-02-27  0:18           ` Duy Nguyen
2018-02-27  9:58         ` [PATCH v2 " Nguyễn Thái Ngọc Duy
2018-02-27  9:58           ` [PATCH v2 1/4] repository.c: move env-related setup code back to environment.c Nguyễn Thái Ngọc Duy
2018-02-27 20:09             ` Brandon Williams
2018-02-27  9:58           ` [PATCH v2 2/4] repository.c: delete dead functions Nguyễn Thái Ngọc Duy
2018-02-27 20:10             ` Brandon Williams
2018-02-27  9:58           ` [PATCH v2 3/4] sha1_file.c: move delayed getenv(altdb) back to setup_git_env() Nguyễn Thái Ngọc Duy
2018-02-27 20:12             ` Brandon Williams
2018-02-28  0:58               ` Duy Nguyen
2018-02-27  9:58           ` [PATCH v2 4/4] repository: delete ignore_env member Nguyễn Thái Ngọc Duy
2018-02-27 20:14             ` Brandon Williams
2018-02-27 10:10           ` [PATCH v2 0/4] Delete ignore_env member in struct repository Eric Sunshine
2018-02-27 18:09           ` Stefan Beller
2018-02-28  1:37           ` [PATCH v3 " Nguyễn Thái Ngọc Duy
2018-02-28  1:37             ` Nguyễn Thái Ngọc Duy [this message]
2018-02-28  1:37             ` [PATCH v3 2/4] repository.c: delete dead functions Nguyễn Thái Ngọc Duy
2018-02-28  1:37             ` [PATCH v3 3/4] sha1_file.c: move delayed getenv(altdb) back to setup_git_env() Nguyễn Thái Ngọc Duy
2018-02-28  1:37             ` [PATCH v3 4/4] repository: delete ignore_env member Nguyễn Thái Ngọc Duy
2018-02-28 18:12             ` [PATCH v3 0/4] Delete ignore_env member in struct repository Brandon Williams
2018-02-28 18:57             ` Junio C Hamano
2018-02-13  1:22 ` [PATCH 15/26] sha1_file: add repository argument to sha1_file_name Stefan Beller
2018-02-13  1:22 ` [PATCH 16/26] sha1_file: add repository argument to stat_sha1_file Stefan Beller
2018-02-13  1:22 ` [PATCH 17/26] sha1_file: add repository argument to open_sha1_file Stefan Beller
2018-02-13  1:22 ` [PATCH 18/26] sha1_file: add repository argument to map_sha1_file_1 Stefan Beller
2018-02-13  1:22 ` [PATCH 19/26] sha1_file: add repository argument to map_sha1_file Stefan Beller
2018-02-13  1:22 ` [PATCH 20/26] sha1_file: add repository argument to sha1_loose_object_info Stefan Beller
2018-02-13  1:22 ` [PATCH 21/26] sha1_file: allow sha1_file_name to handle arbitrary repositories Stefan Beller
2018-02-13  1:22 ` [PATCH 22/26] sha1_file: allow stat_sha1_file " Stefan Beller
2018-02-13  1:22 ` [PATCH 23/26] sha1_file: allow open_sha1_file " Stefan Beller
2018-02-13  1:22 ` [PATCH 24/26] sha1_file: allow map_sha1_file_1 " Stefan Beller
2018-02-13  1:22 ` [PATCH 25/26] sha1_file: allow map_sha1_file " Stefan Beller
2018-02-13  1:22 ` [PATCH 26/26] sha1_file: allow sha1_loose_object_info " Stefan Beller
2018-02-13  1:38 ` [PATCH 00/26] Moving global state into the repository object (part 1) Stefan Beller
2018-02-13 11:49 ` Duy Nguyen
2018-02-13 12:13   ` Duy Nguyen
2018-02-13 16:52     ` Brandon Williams
2018-02-13 17:47     ` Stefan Beller
2018-02-13 18:57       ` Junio C Hamano
2018-02-13 19:23         ` Stefan Beller
2018-02-13 19:35           ` Junio C Hamano
2018-02-13 19:43             ` Stefan Beller
2018-02-14  0:30               ` Junio C Hamano
2018-02-13 19:26 ` Jonathan Nieder
2018-02-14  0:57   ` Duy Nguyen
2018-02-13 19:33 ` Brandon Williams
2018-02-15 20:42 ` Junio C Hamano
2018-02-15 21:09   ` Stefan Beller
2018-02-16 17:46   ` [PATCHv2 00/16] " Stefan Beller
2018-02-16 17:46     ` [PATCH 01/16] repository: introduce raw object store field Stefan Beller
2018-02-16 17:46     ` [PATCH 02/16] object-store: move alt_odb_list and alt_odb_tail to object store Stefan Beller
2018-02-16 17:46     ` [PATCH 03/16] object-store: free alt_odb_list Stefan Beller
2018-02-16 17:46     ` [PATCH 04/16] object-store: move packed_git and packed_git_mru to object store Stefan Beller
2018-02-16 20:27       ` Junio C Hamano
2018-02-16 17:46     ` [PATCH 05/16] object-store: close all packs upon clearing the " Stefan Beller
2018-02-16 17:46     ` [PATCH 06/16] pack: move prepare_packed_git_run_once to " Stefan Beller
2018-02-16 17:46     ` [PATCH 07/16] pack: move approximate object count " Stefan Beller
2018-02-16 17:46     ` [PATCH 08/16] sha1_file: add raw_object_store argument to alt_odb_usable Stefan Beller
2018-02-16 17:46     ` [PATCH 09/16] sha1_file: allow link_alt_odb_entries to handle arbitrary object stores Stefan Beller
2018-02-16 17:46     ` [PATCH 10/16] sha1_file: allow prepare_alt_odb " Stefan Beller
2018-02-16 17:46     ` [PATCH 11/16] sha1_file: allow sha1_file_name " Stefan Beller
2018-02-16 17:46     ` [PATCH 12/16] sha1_file: allow stat_sha1_file " Stefan Beller
2018-02-16 17:46     ` [PATCH 13/16] sha1_file: allow open_sha1_file " Stefan Beller
2018-02-16 17:46     ` [PATCH 14/16] sha1_file: allow map_sha1_file_1 " Stefan Beller
2018-02-16 17:46     ` [PATCH 15/16] sha1_file: allow map_sha1_file " Stefan Beller
2018-02-16 17:46     ` [PATCH 16/16] sha1_file: allow sha1_loose_object_info " Stefan Beller
2018-02-16 22:34     ` [PATCHv2 00/16] Moving global state into the repository object (part 1) Jonathan Nieder
2018-02-20 18:55       ` Stefan Beller
2018-02-20 19:00         ` Brandon Williams
2018-02-20 19:03           ` Stefan Beller
2018-02-20 19:03       ` Junio C Hamano
2018-02-20 19:06         ` Stefan Beller
2018-02-20 19:55           ` Junio C Hamano
2018-02-20 20:16             ` Stefan Beller
2018-02-21  1:54     ` [PATCHv3 00/27] " Stefan Beller
2018-02-21  1:54       ` [PATCH 01/27] repository: introduce raw object store field Stefan Beller
2018-02-22  6:26         ` Jonathan Nieder
2018-02-21  1:54       ` [PATCH 02/27] object-store: migrate alternates struct and functions from cache.h Stefan Beller
2018-02-22  0:37         ` Brandon Williams
2018-02-21  1:54       ` [PATCH 03/27] object-store: move alt_odb_list and alt_odb_tail to object store Stefan Beller
2018-02-22  0:41         ` Brandon Williams
2018-02-21  1:54       ` [PATCH 04/27] object-store: free alt_odb_list Stefan Beller
2018-02-22  0:42         ` Brandon Williams
2018-02-21  1:54       ` [PATCH 05/27] object-store: move packed_git and packed_git_mru to object store Stefan Beller
2018-02-21 21:51         ` Junio C Hamano
2018-02-23 20:01           ` Stefan Beller
2018-02-22  6:44         ` Jonathan Nieder
2018-02-23 21:42           ` Stefan Beller
2018-02-21  1:54       ` [PATCH 06/27] object-store: close all packs upon clearing the " Stefan Beller
2018-02-22  0:43         ` Brandon Williams
2018-02-21  1:54       ` [PATCH 07/27] pack: move prepare_packed_git_run_once to " Stefan Beller
2018-02-22  0:20         ` Jonathan Tan
2018-02-21  1:54       ` [PATCH 08/27] pack: move approximate object count " Stefan Beller
2018-02-22  0:47         ` Brandon Williams
2018-02-23 22:22           ` Stefan Beller
2018-02-26  8:55             ` Jeff King
2018-02-26 20:57               ` Stefan Beller
2018-02-21  1:54       ` [PATCH 09/27] sha1_file: add raw_object_store argument to alt_odb_usable Stefan Beller
2018-02-22  0:29         ` Jonathan Tan
2018-02-21  1:54       ` [PATCH 10/27] sha1_file: add repository argument to link_alt_odb_entry Stefan Beller
2018-02-21  1:54       ` [PATCH 11/27] sha1_file: add repository argument to read_info_alternates Stefan Beller
2018-02-21  1:54       ` [PATCH 12/27] sha1_file: add repository argument to link_alt_odb_entries Stefan Beller
2018-02-21  1:54       ` [PATCH 13/27] sha1_file: add repository argument to prepare_alt_odb Stefan Beller
2018-02-22  6:51         ` Jonathan Nieder
2018-02-23 22:33           ` Stefan Beller
2018-02-21  1:54       ` [PATCH 14/27] sha1_file: allow link_alt_odb_entries to handle arbitrary repositories Stefan Beller
2018-02-22  0:49         ` Brandon Williams
2018-02-21  1:54       ` [PATCH 15/27] sha1_file: allow prepare_alt_odb " Stefan Beller
2018-02-22  0:35         ` Jonathan Tan
2018-02-23 23:18           ` Stefan Beller
2018-02-21  1:54       ` [PATCH 16/27] sha1_file: add repository argument to sha1_file_name Stefan Beller
2018-02-22  0:51         ` Brandon Williams
2018-02-23 22:36           ` Stefan Beller
2018-02-23 23:11             ` Brandon Williams
2018-02-21  1:54       ` [PATCH 17/27] sha1_file: add repository argument to stat_sha1_file Stefan Beller
2018-02-22  6:52         ` Jonathan Nieder
2018-02-21  1:54       ` [PATCH 18/27] sha1_file: add repository argument to open_sha1_file Stefan Beller
2018-02-21  1:54       ` [PATCH 19/27] sha1_file: add repository argument to map_sha1_file_1 Stefan Beller
2018-02-22  0:36         ` Jonathan Tan
2018-02-21  1:54       ` [PATCH 20/27] sha1_file: add repository argument to map_sha1_file Stefan Beller
2018-02-21  1:54       ` [PATCH 21/27] sha1_file: add repository argument to sha1_loose_object_info Stefan Beller
2018-02-22  6:53         ` Jonathan Nieder
2018-02-21  1:54       ` [PATCH 22/27] sha1_file: allow sha1_file_name to handle arbitrary repositories Stefan Beller
2018-02-22  0:44         ` Jonathan Tan
2018-02-23 22:50           ` Stefan Beller
2018-02-21  1:54       ` [PATCH 23/27] sha1_file: allow stat_sha1_file " Stefan Beller
2018-02-21  1:54       ` [PATCH 24/27] sha1_file: allow open_sha1_file " Stefan Beller
2018-02-22  0:45         ` Jonathan Tan
2018-02-21  1:54       ` [PATCH 25/27] sha1_file: allow map_sha1_file_1 " Stefan Beller
2018-02-21  1:54       ` [PATCH 26/27] sha1_file: allow map_sha1_file " Stefan Beller
2018-02-22  6:54         ` Jonathan Nieder
2018-02-21  1:54       ` [PATCH 27/27] sha1_file: allow sha1_loose_object_info " Stefan Beller
2018-02-22  0:26       ` [PATCHv3 00/27] Moving global state into the repository object (part 1) Stefan Beller
2018-02-24  0:47       ` [PATCHv4 " Stefan Beller
2018-02-24  0:47         ` [PATCHv4 01/27] repository: introduce raw object store field Stefan Beller
2018-02-26  9:30           ` Duy Nguyen
2018-02-26 18:19             ` Junio C Hamano
2018-02-26 18:23               ` Brandon Williams
2018-02-26 19:28             ` Stefan Beller
2018-02-26 23:59               ` Duy Nguyen
2018-02-24  0:47         ` [PATCHv4 02/27] object-store: migrate alternates struct and functions from cache.h Stefan Beller
2018-02-24  0:47         ` [PATCHv4 03/27] object-store: move alt_odb_list and alt_odb_tail to object store Stefan Beller
2018-02-24  0:47         ` [PATCHv4 04/27] object-store: free alt_odb_list Stefan Beller
2018-02-24  0:47         ` [PATCHv4 05/27] object-store: move packed_git and packed_git_mru to object store Stefan Beller
2018-02-24  0:47         ` [PATCHv4 06/27] object-store: close all packs upon clearing the " Stefan Beller
2018-02-24  0:47         ` [PATCHv4 07/27] pack: move prepare_packed_git_run_once to " Stefan Beller
2018-02-24  0:47         ` [PATCHv4 08/27] pack: move approximate object count " Stefan Beller
2018-02-24  0:47         ` [PATCHv4 09/27] sha1_file: add raw_object_store argument to alt_odb_usable Stefan Beller
2018-02-24  0:47         ` [PATCHv4 10/27] sha1_file: add repository argument to link_alt_odb_entry Stefan Beller
2018-02-24  0:47         ` [PATCHv4 11/27] sha1_file: add repository argument to read_info_alternates Stefan Beller
2018-02-24  0:47         ` [PATCHv4 12/27] sha1_file: add repository argument to link_alt_odb_entries Stefan Beller
2018-02-24  0:47         ` [PATCHv4 13/27] sha1_file: add repository argument to prepare_alt_odb Stefan Beller
2018-02-24  0:47         ` [PATCHv4 14/27] sha1_file: allow link_alt_odb_entries to handle arbitrary repositories Stefan Beller
2018-02-24  0:47         ` [PATCHv4 15/27] sha1_file: allow prepare_alt_odb " Stefan Beller
2018-02-24  0:47         ` [PATCHv4 16/27] sha1_file: add repository argument to sha1_file_name Stefan Beller
2018-02-24  0:47         ` [PATCHv4 17/27] sha1_file: add repository argument to stat_sha1_file Stefan Beller
2018-02-24  0:47         ` [PATCHv4 18/27] sha1_file: add repository argument to open_sha1_file Stefan Beller
2018-02-24  0:47         ` [PATCHv4 19/27] sha1_file: add repository argument to map_sha1_file_1 Stefan Beller
2018-02-24  0:47         ` [PATCHv4 20/27] sha1_file: add repository argument to map_sha1_file Stefan Beller
2018-02-24  0:47         ` [PATCHv4 21/27] sha1_file: add repository argument to sha1_loose_object_info Stefan Beller
2018-02-24  0:47         ` [PATCHv4 22/27] sha1_file: allow sha1_file_name to handle arbitrary repositories Stefan Beller
2018-02-24  0:47         ` [PATCHv4 23/27] sha1_file: allow stat_sha1_file " Stefan Beller
2018-02-24  0:47         ` [PATCHv4 24/27] sha1_file: allow open_sha1_file " Stefan Beller
2018-02-24  0:47         ` [PATCHv4 25/27] sha1_file: allow map_sha1_file_1 " Stefan Beller
2018-02-24  0:47         ` [PATCHv4 26/27] sha1_file: allow map_sha1_file " Stefan Beller
2018-02-24  0:47         ` [PATCHv4 27/27] sha1_file: allow sha1_loose_object_info " Stefan Beller
2018-02-24 15:00         ` [PATCHv4 00/27] Moving global state into the repository object (part 1) Duy Nguyen
2018-02-26 20:50           ` Stefan Beller
2018-02-27  0:02             ` Duy Nguyen
2018-02-26 18:19         ` Jonathan Tan

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180228013727.13815-2-pclouds@gmail.com \
    --to=pclouds@gmail.com \
    --cc=bmwill@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jonathantanmy@google.com \
    --cc=sbeller@google.com \
    --cc=sunshine@sunshineco.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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).