git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Cc: git@vger.kernel.org, Michael Haggerty <mhagger@alum.mit.edu>,
	Johannes Schindelin <Johannes.Schindelin@gmx.de>,
	Ramsay Jones <ramsay@ramsayjones.plus.com>,
	Stefan Beller <sbeller@google.com>,
	novalis@novalis.org
Subject: Re: [PATCH v3 04/16] files-backend: replace *git_path*() with files_path()
Date: Fri, 17 Feb 2017 11:27:18 -0800	[thread overview]
Message-ID: <xmqqlgt4sjmx.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20170217140436.17336-5-pclouds@gmail.com> ("Nguyễn Thái Ngọc Duy"'s message of "Fri, 17 Feb 2017 21:04:24 +0700")

Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:

> This centralizes all path rewriting of files-backend.c in one place so
> we have easier time removing the path rewriting later. There could be
> some hidden indirect git_path() though, I didn't audit the code to the
> bottom.
>
> Side note: set_worktree_head_symref() is a bad boy and should not be in
> files-backend.c (probably should not exist in the first place). But
> we'll leave it there until we have better multi-worktree support in refs
> before we update it.
>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
>  refs/files-backend.c | 185 ++++++++++++++++++++++++++-------------------------
>  1 file changed, 94 insertions(+), 91 deletions(-)

In this step, files_path() is still "if refs->submodule field is
there, then use that to call strbuf_git_path_submodule() and
otherwise call strbuf_git_path()."  That is a very sensible
refactoring for things like packed-refs-file in this hunk:

>  static struct packed_ref_cache *get_packed_ref_cache(struct files_ref_store *refs)
>  {
>  	char *packed_refs_file;
> +	struct strbuf sb = STRBUF_INIT;
>  
> -	if (refs->submodule)
> -		packed_refs_file = git_pathdup_submodule(refs->submodule,
> -							 "packed-refs");
> -	else
> -		packed_refs_file = git_pathdup("packed-refs");
> +	files_path(refs, &sb, "packed-refs");
> +	packed_refs_file = strbuf_detach(&sb, NULL);

But the original code of some other changes do not follow that
pattern, e.g.

> @@ -1585,7 +1578,7 @@ static int lock_raw_ref(struct files_ref_store *refs,
>  	*lock_p = lock = xcalloc(1, sizeof(*lock));
>  
>  	lock->ref_name = xstrdup(refname);
> -	strbuf_git_path(&ref_file, "%s", refname);
> +	files_path(refs, &ref_file, "%s", refname);

Is it the right way to review these changes to make sure that a
conversion from the original that is an unconditional
strbuf_git_path() to files_path() happens only if the function is
"files-assert-main-repository" clean?  lock_raw_ref() certainly is
one of those functions where the caller should not have a non-empty
submodule field in refs.

> @@ -2052,7 +2045,7 @@ static struct ref_lock *lock_ref_sha1_basic(struct files_ref_store *refs,
>  	if (flags & REF_DELETING)
>  		resolve_flags |= RESOLVE_REF_ALLOW_BAD_NAME;
>  
> -	strbuf_git_path(&ref_file, "%s", refname);
> +	files_path(refs, &ref_file, "%s", refname);

So is this one; lock_ref_sha1_basic() is protected with assert-main-repo.

> @@ -2343,7 +2336,7 @@ static int pack_if_possible_fn(struct ref_entry *entry, void *cb_data)
>   * Remove empty parents, but spare refs/ and immediate subdirs.
>   * Note: munges *name.
>   */
> -static void try_remove_empty_parents(char *name)
> +static void try_remove_empty_parents(struct files_ref_store *refs, char *name)
>  {
>  	char *p, *q;
>  	int i;
> @@ -2368,7 +2361,7 @@ static void try_remove_empty_parents(char *name)
>  		if (q == p)
>  			break;
>  		*q = '\0';
> -		strbuf_git_path(&sb, "%s", name);
> +		files_path(refs, &sb, "%s", name);

But here it gets iffy.  try_remove_empty_parents() itself does not
assert, and its sole caller prune_ref() does not, either.  The sole
caller of prune_ref() which is prune_refs() does not.  As we climb
the call chain up, we reach files_pack_refs().  Am I confused to
doubt that the method is inherently main-repo only?

    ... ah, OK, files_downcast() at the beginning of pack_refs
    forbids submodule.  So this is safe.


> @@ -2462,7 +2455,7 @@ static int repack_without_refs(struct files_ref_store *refs,
>  	if (lock_packed_refs(refs, 0)) {
>  		struct strbuf sb = STRBUF_INIT;
>  
> -		strbuf_git_path(&sb, "packed-refs");
> +		files_path(refs, &sb, "packed-refs");

This is safe, as repack_without_refs() asserts that it is main-repo
only.

> @@ -2558,17 +2551,17 @@ static int files_delete_refs(struct ref_store *ref_store,
>   */
>  #define TMP_RENAMED_LOG  "logs/refs/.tmp-renamed-log"
>  
> -static int rename_tmp_log(const char *newrefname)
> +static int rename_tmp_log(struct files_ref_store *refs, const char *newrefname)
>  {

The sole caller files_rename_ref() is main-repo only and that is
guaranteed when downcast is done.

> -static int log_ref_setup(const char *refname, struct strbuf *logfile, struct strbuf *err, int force_create)
> +static int log_ref_setup(struct files_ref_store *refs, const char *refname,
> +			 struct strbuf *logfile, struct strbuf *err,
> +			 int force_create)
>  {
>  	int logfd, oflags = O_APPEND | O_WRONLY;
>  
> -	strbuf_git_path(logfile, "logs/%s", refname);
> +	files_path(refs, logfile, "logs/%s", refname);

This and friends of log_ref_write() eventually rolls up to
commit_ref_update() that has the main-repo only assertion, so they
should be safe.

Another entry point files_create_symref() via create_symref_locked()
also reaches log_ref_write() and friends but the safety is guaranteed
via the downcast that asserts.

OK, overall I really like the loss of "Check the validity but we do
not need the result" with this step.  The same checks are still done
but the code looks much less hacky.


  reply	other threads:[~2017-02-17 19:27 UTC|newest]

Thread overview: 250+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-13 15:20 [PATCH/RFC 00/11] Remove submodule from files-backend.c Nguyễn Thái Ngọc Duy
2017-02-13 15:20 ` [PATCH 01/11] refs-internal.c: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-02-13 20:14   ` Ramsay Jones
2017-02-14  9:23     ` Duy Nguyen
2017-02-13 15:20 ` [PATCH 02/11] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-02-13 20:38   ` Ramsay Jones
2017-02-13 15:20 ` [PATCH 03/11] files-backend: add files_path() Nguyễn Thái Ngọc Duy
2017-02-13 20:43   ` Ramsay Jones
2017-02-13 15:20 ` [PATCH 04/11] files-backend: replace *git_path*() with files_path() Nguyễn Thái Ngọc Duy
2017-02-13 20:58   ` Ramsay Jones
2017-02-14  9:43     ` Duy Nguyen
2017-02-13 15:20 ` [PATCH 05/11] refs.c: share is_per_worktree_ref() to files-backend.c Nguyễn Thái Ngọc Duy
2017-02-13 15:20 ` [PATCH 06/11] refs-internal.h: correct is_per_worktree_ref() Nguyễn Thái Ngọc Duy
2017-02-13 22:37   ` Stefan Beller
2017-02-14  9:40     ` Duy Nguyen
2017-02-14 17:40       ` Stefan Beller
2017-02-13 15:20 ` [PATCH 07/11] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-02-13 23:09   ` Stefan Beller
2017-02-14  9:38     ` Duy Nguyen
2017-02-13 15:20 ` [PATCH 08/11] refs.c: factor submodule code out of get_ref_store() Nguyễn Thái Ngọc Duy
2017-02-13 23:13   ` Stefan Beller
2017-02-13 15:20 ` [PATCH 09/11] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-02-13 23:35   ` Stefan Beller
2017-02-14  9:32     ` Duy Nguyen
2017-02-13 15:20 ` [PATCH 10/11] files-backend: remove submodule_allowed from files_downcast() Nguyễn Thái Ngọc Duy
2017-02-13 23:44   ` Stefan Beller
2017-02-13 15:20 ` [PATCH 11/11] refs: split and make get_*_ref_store() public API Nguyễn Thái Ngọc Duy
2017-02-13 23:55   ` Stefan Beller
2017-02-14 10:04     ` Duy Nguyen
2017-02-14 18:24       ` Junio C Hamano
2017-02-15  0:44         ` Duy Nguyen
2017-02-15  1:16           ` Junio C Hamano
2017-02-14 18:43       ` Stefan Beller
2017-02-16 11:48 ` [PATCH v2 00/16] Remove submodule from files-backend.c Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 01/16] refs-internal.c: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 02/16] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 03/16] files-backend: add files_path() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 04/16] files-backend: replace *git_path*() with files_path() Nguyễn Thái Ngọc Duy
2017-02-20 11:23     ` Michael Haggerty
2017-02-20 12:25       ` Duy Nguyen
2017-02-16 11:48   ` [PATCH v2 05/16] refs.c: share is_per_worktree_ref() to files-backend.c Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 06/16] refs-internal.h: correct is_per_worktree_ref() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 07/16] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 08/16] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 09/16] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 10/16] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 11/16] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 12/16] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 13/16] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 14/16] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 15/16] files-backend: remove submodule_allowed from files_downcast() Nguyễn Thái Ngọc Duy
2017-02-16 11:48   ` [PATCH v2 16/16] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-02-16 22:55   ` [PATCH v2 00/16] Remove submodule from files-backend.c Stefan Beller
2017-02-17 14:04   ` [PATCH v3 " Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 01/16] refs-internal.c: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 02/16] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 03/16] files-backend: add files_path() Nguyễn Thái Ngọc Duy
2017-02-17 18:57       ` Junio C Hamano
2017-02-17 14:04     ` [PATCH v3 04/16] files-backend: replace *git_path*() with files_path() Nguyễn Thái Ngọc Duy
2017-02-17 19:27       ` Junio C Hamano [this message]
2017-02-17 14:04     ` [PATCH v3 05/16] refs.c: share is_per_worktree_ref() to files-backend.c Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 06/16] refs-internal.h: correct is_per_worktree_ref() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 07/16] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 08/16] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 09/16] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 10/16] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 11/16] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-17 19:29       ` Junio C Hamano
2017-02-17 14:04     ` [PATCH v3 12/16] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 13/16] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 14/16] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 15/16] files-backend: remove submodule_allowed from files_downcast() Nguyễn Thái Ngọc Duy
2017-02-17 14:04     ` [PATCH v3 16/16] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-02-18 13:32     ` [PATCH v4 00/15] Remove submodule from files-backend.c Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 01/15] refs-internal.c: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 02/15] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 03/15] files-backend: add files_path() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 04/15] files-backend: replace *git_path*() with files_path() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 05/15] refs.c: share is_per_worktree_ref() to files-backend.c Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 06/15] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-02-20 11:34         ` Michael Haggerty
2017-02-20 12:31           ` Duy Nguyen
2017-02-18 13:32       ` [PATCH v4 07/15] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 08/15] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 09/15] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 10/15] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-18 13:32       ` [PATCH v4 11/15] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-02-20 12:37         ` Michael Haggerty
2017-02-18 13:33       ` [PATCH v4 12/15] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-02-18 13:33       ` [PATCH v4 13/15] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-02-18 13:33       ` [PATCH v4 14/15] files-backend: remove submodule_allowed from files_downcast() Nguyễn Thái Ngọc Duy
2017-02-20 12:11         ` Michael Haggerty
2017-02-20 12:21           ` Duy Nguyen
2017-02-20 12:30             ` Michael Haggerty
2017-02-20 12:33               ` Duy Nguyen
2017-02-20 12:38                 ` Michael Haggerty
2017-02-21 13:25           ` Duy Nguyen
2017-02-18 13:33       ` [PATCH v4 15/15] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-02-20 12:42       ` [PATCH v4 00/15] Remove submodule from files-backend.c Michael Haggerty
2017-02-20 12:47         ` Duy Nguyen
2017-02-22 14:04       ` [PATCH v5 00/24] " Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 01/24] refs.h: add forward declaration for structs used in this file Nguyễn Thái Ngọc Duy
2017-02-22 18:18           ` Stefan Beller
2017-02-23  9:26             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 02/24] files-backend: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 03/24] files-backend: add and use files_packed_refs_path() Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 04/24] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-02-28 17:06           ` Michael Haggerty
2017-03-02 12:52             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 05/24] files-backend: move "logs/" out of TMP_RENAMED_LOG Nguyễn Thái Ngọc Duy
2017-02-28 17:19           ` Michael Haggerty
2017-03-02 13:07             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 06/24] files-backend: add and use files_reflog_path() Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 07/24] files-backend: add and use files_refname_path() Nguyễn Thái Ngọc Duy
2017-02-28 17:41           ` Michael Haggerty
2017-03-02 12:46             ` Duy Nguyen
2017-03-09 12:24           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 08/24] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-02-28 17:50           ` Michael Haggerty
2017-03-02 12:43             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 09/24] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-02-28 17:51           ` Michael Haggerty
2017-03-01 12:06             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 10/24] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 11/24] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 12/24] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-02-28 18:03           ` Michael Haggerty
2017-03-01 12:00             ` Duy Nguyen
2017-03-01 12:31               ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 13/24] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-02-28 18:06           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 14/24] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-02-28 18:14           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 15/24] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-03-03 14:32           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 16/24] files-backend: replace submodule_allowed check in files_downcast() Nguyễn Thái Ngọc Duy
2017-03-03 14:49           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 17/24] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 18/24] refs: add new ref-store api Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 19/24] refs: new transaction related " Nguyễn Thái Ngọc Duy
2017-03-03 15:48           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 20/24] files-backend: avoid ref api targetting main ref store Nguyễn Thái Ngọc Duy
2017-03-03 16:03           ` Michael Haggerty
2017-02-22 14:04         ` [PATCH v5 21/24] refs: delete pack_refs() in favor of refs_pack_refs() Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 22/24] t/helper: add test-ref-store to test ref-store functions Nguyễn Thái Ngọc Duy
2017-02-22 14:04         ` [PATCH v5 23/24] t1405: some basic tests on main ref store Nguyễn Thái Ngọc Duy
2017-03-03 16:43           ` Michael Haggerty
2017-03-06 12:30             ` Duy Nguyen
2017-02-22 14:04         ` [PATCH v5 24/24] t1406: new tests for submodule " Nguyễn Thái Ngọc Duy
2017-02-28 17:34           ` Michael Haggerty
2017-03-01 12:34             ` Duy Nguyen
2017-03-01 15:11               ` Michael Haggerty
2017-03-02  6:13                 ` Duy Nguyen
2017-03-02  8:16                   ` Michael Haggerty
2017-03-02 12:38                     ` Duy Nguyen
2017-03-03 16:51           ` Michael Haggerty
2017-02-22 17:18         ` [PATCH v5 00/24] Remove submodule from files-backend.c Junio C Hamano
2017-02-22 21:04           ` Junio C Hamano
2017-02-28 18:20         ` Michael Haggerty
2017-02-28 20:52           ` Junio C Hamano
2017-03-03 16:54         ` Michael Haggerty
2017-03-18  2:03         ` [PATCH v6 00/27] " Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 01/27] refs.h: add forward declaration for structs used in this file Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 02/27] files-backend: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-03-19 19:10             ` Michael Haggerty
2017-03-19 20:35               ` Ramsay Jones
2017-03-18  2:03           ` [PATCH v6 03/27] files-backend: delete dead code in files_init_db() Nguyễn Thái Ngọc Duy
2017-03-19 19:11             ` Michael Haggerty
2017-03-18  2:03           ` [PATCH v6 04/27] files-backend: add and use files_packed_refs_path() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 05/27] files-backend: make sure files_rename_ref() always reach the end Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 06/27] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 07/27] files-backend: move "logs/" out of TMP_RENAMED_LOG Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 08/27] files-backend: add and use files_reflog_path() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 09/27] files-backend: add and use files_refname_path() Nguyễn Thái Ngọc Duy
2017-03-19 20:32             ` Michael Haggerty
2017-03-18  2:03           ` [PATCH v6 10/27] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 11/27] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-03-19 20:38             ` Michael Haggerty
2017-03-18  2:03           ` [PATCH v6 12/27] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 13/27] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 14/27] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 15/27] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 16/27] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-03-19 20:47             ` Michael Haggerty
2017-03-20 12:11               ` Duy Nguyen
2017-03-18  2:03           ` [PATCH v6 17/27] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-03-19 21:05             ` Michael Haggerty
2017-03-20 12:09               ` Duy Nguyen
2017-03-20 14:29                 ` Michael Haggerty
2017-03-18  2:03           ` [PATCH v6 18/27] files-backend: replace submodule_allowed check in files_downcast() Nguyễn Thái Ngọc Duy
2017-03-19 21:18             ` Michael Haggerty
2017-03-26  2:16               ` Duy Nguyen
2017-03-29 10:55                 ` Michael Haggerty
2017-03-18  2:03           ` [PATCH v6 19/27] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 20/27] refs: add new ref-store api Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 21/27] refs: new transaction related " Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 22/27] files-backend: avoid ref api targetting main ref store Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 23/27] refs: delete pack_refs() in favor of refs_pack_refs() Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 24/27] t/helper: add test-ref-store to test ref-store functions Nguyễn Thái Ngọc Duy
2017-03-22 13:34             ` Jeff King
2017-03-22 13:37               ` Jeff King
2017-03-25 11:54                 ` Duy Nguyen
2017-03-18  2:03           ` [PATCH v6 25/27] t1405: some basic tests on main ref store Nguyễn Thái Ngọc Duy
2017-03-18  2:03           ` [PATCH v6 26/27] t1406: new tests for submodule " Nguyễn Thái Ngọc Duy
2017-03-20  5:27             ` Michael Haggerty
2017-03-20 12:05               ` Duy Nguyen
2017-03-18  2:03           ` [PATCH v6 27/27] refs.h: add a note about sorting order of for_each_ref_* Nguyễn Thái Ngọc Duy
2017-03-20  5:37           ` [PATCH v6 00/27] Remove submodule from files-backend.c Michael Haggerty
2017-03-20 15:53             ` Junio C Hamano
2017-03-26  2:42           ` [PATCH v7 00/28] " Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 01/28] refs.h: add forward declaration for structs used in this file Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 02/28] files-backend: make files_log_ref_write() static Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 03/28] files-backend.c: delete dead code in files_ref_iterator_begin() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 04/28] files-backend: delete dead code in files_init_db() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 05/28] files-backend: add and use files_packed_refs_path() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 06/28] files-backend: make sure files_rename_ref() always reach the end Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 07/28] files-backend: convert git_path() to strbuf_git_path() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 08/28] files-backend: move "logs/" out of TMP_RENAMED_LOG Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 09/28] files-backend: add and use files_reflog_path() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 10/28] files-backend: add and use files_ref_path() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 11/28] files-backend: remove the use of git_path() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 12/28] refs.c: introduce get_main_ref_store() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 13/28] refs: rename lookup_ref_store() to lookup_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 14/28] refs.c: flatten get_ref_store() a bit Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 15/28] refs.c: kill register_ref_store(), add register_submodule_ref_store() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 16/28] refs.c: make get_main_ref_store() public and use it Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 17/28] path.c: move some code out of strbuf_git_path_submodule() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 18/28] refs: move submodule code out of files-backend.c Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 19/28] files-backend: replace submodule_allowed check in files_downcast() Nguyễn Thái Ngọc Duy
2017-04-01  4:02               ` Michael Haggerty
2017-04-07 12:41                 ` Duy Nguyen
2017-04-14 10:44                   ` Junio C Hamano
2017-04-14 13:02                     ` Duy Nguyen
2017-03-26  2:42             ` [PATCH v7 20/28] refs: rename get_ref_store() to get_submodule_ref_store() and make it public Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 21/28] refs: add new ref-store api Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 22/28] refs: new transaction related " Nguyễn Thái Ngọc Duy
2017-04-01  4:54               ` Michael Haggerty
2017-04-07 12:29                 ` Duy Nguyen
2017-03-26  2:42             ` [PATCH v7 23/28] files-backend: avoid ref api targetting main ref store Nguyễn Thái Ngọc Duy
2017-04-01  5:05               ` Michael Haggerty
2017-03-26  2:42             ` [PATCH v7 24/28] refs: delete pack_refs() in favor of refs_pack_refs() Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 25/28] t/helper: add test-ref-store to test ref-store functions Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 26/28] t1405: some basic tests on main ref store Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 27/28] t1406: new tests for submodule " Nguyễn Thái Ngọc Duy
2017-03-26  2:42             ` [PATCH v7 28/28] refs.h: add a note about sorting order of for_each_ref_* Nguyễn Thái Ngọc Duy
2017-04-01  5:09             ` [PATCH v7 00/28] Remove submodule from files-backend.c Michael Haggerty
2017-04-11  8:30               ` Junio C Hamano
2017-02-17 18:35   ` [PATCH v2 00/16] " Junio C Hamano
2017-02-17 20:49     ` Junio C Hamano
2017-02-18 13:15     ` Duy Nguyen

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=xmqqlgt4sjmx.fsf@gitster.mtv.corp.google.com \
    --to=gitster@pobox.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=mhagger@alum.mit.edu \
    --cc=novalis@novalis.org \
    --cc=pclouds@gmail.com \
    --cc=ramsay@ramsayjones.plus.com \
    --cc=sbeller@google.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).