All of lore.kernel.org
 help / color / mirror / Atom feed
From: "René Scharfe" <l.s.r@web.de>
To: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: [PATCH v4 4/6] coccinelle: add a rule to make "expression" code use FREE_AND_NULL()
Date: Thu, 29 Jun 2017 00:21:33 +0200	[thread overview]
Message-ID: <433f9fb7-a202-1091-46de-04535b2a49e1@web.de> (raw)
In-Reply-To: <87injfkd0j.fsf@gmail.com>

Am 28.06.2017 um 23:39 schrieb Ævar Arnfjörð Bjarmason:
> 
> On Sun, Jun 25 2017, René Scharfe jotted:
> 
>> Am 16.06.2017 um 21:43 schrieb Junio C Hamano:
>>> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
>>>
>>>> A follow-up to the existing "type" rule added in an earlier
>>>> change. This catches some occurrences that are missed by the previous
>>>> rule.
>>>>
>>>> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
>>>> ---
>>>
>>> Hmph, I wonder if the "type" thing is really needed.  Over there,
>>> "ptr" is an expression and we can find "free(ptr); ptr = NULL" with
>>> the rule in this patch already, no?
>>
>> Indeed.  How about this on top of master?
>>
>> -- >8 --
>> Subject: [PATCH] coccinelle: polish FREE_AND_NULL rules
>>
>> There are two rules for using FREE_AND_NULL in free.cocci, one for
>> pointer types and one for expressions.  Both cause coccinelle to remove
>> empty lines and even newline characters between replacements for some
>> reason; consecutive "free(x);/x=NULL;" sequences end up as multiple
>> FREE_AND_NULL calls on the same time.
>>
>> Remove the type rule, as the expression rule already covers it, and
>> rearrange the lines of the latter to place the addition of FREE_AND_NULL
>> between the removals, which causes coccinelle to leave surrounding
>> whitespace untouched.
>>
>> Signed-off-by: Rene Scharfe <l.s.r@web.de>
>> ---
>>   contrib/coccinelle/free.cocci | 10 +---------
>>   1 file changed, 1 insertion(+), 9 deletions(-)
>>
>> diff --git a/contrib/coccinelle/free.cocci b/contrib/coccinelle/free.cocci
>> index f2d97e755b..4490069df9 100644
>> --- a/contrib/coccinelle/free.cocci
>> +++ b/contrib/coccinelle/free.cocci
>> @@ -11,16 +11,8 @@ expression E;
>>     free(E);
>>
>>   @@
>> -type T;
>> -T *ptr;
>> -@@
>> -- free(ptr);
>> -- ptr = NULL;
>> -+ FREE_AND_NULL(ptr);
>> -
>> -@@
>>   expression E;
>>   @@
>>   - free(E);
>> -- E = NULL;
>>   + FREE_AND_NULL(E);
>> +- E = NULL;
> 
> Late reply, sorry. What version of coccinelle are you running? I have
> 1.0.4 (from Debian) and can't get this to produce the same results as
> what I have.
> 
> On top of next, I did:
> 
>          Revert "*.[ch] refactoring: make use of the FREE_AND_NULL() macro"
>          Revert "coccinelle: make use of the "expression" FREE_AND_NULL() rule"
>          Revert "coccinelle: make use of the "type" FREE_AND_NULL() rule"
> 
> And then generated the patch as usual with `make coccicheck`, and
> applied it. This has your change.
> 
> I then re-applied the manual "*.[ch] refactoring" changes
> 
> This results in this diff with next:
> 
>      $ git diff --stat origin/next.. -- '*.[ch]'
>       builtin/am.c             |  3 ++-
>       builtin/clean.c          |  6 ++++--
>       builtin/config.c         |  6 ++++--
>       builtin/index-pack.c     |  6 ++++--
>       builtin/pack-objects.c   | 12 ++++++++----
>       builtin/unpack-objects.c |  3 ++-
>       fast-import.c            |  6 ++++--
>       http-push.c              | 24 ++++++++++++++++--------
>       http.c                   | 15 ++++++++++-----
>       imap-send.c              |  3 ++-
>       ref-filter.c             |  3 ++-
>       refs/files-backend.c     |  3 ++-
>       remote-testsvn.c         |  3 ++-
>       sequencer.c              |  3 ++-
>       sha1-array.c             |  3 ++-
>       sha1_file.c              |  3 ++-
>       transport-helper.c       | 27 ++++++++++++++++++---------
>       transport.c              |  3 ++-
>       tree-diff.c              |  6 ++++--
>       tree.c                   |  3 ++-
>       20 files changed, 94 insertions(+), 47 deletions(-)
> 
> These are all cases where we now miss things that should use
> FREE_AND_NULL(), e.g.:
> 
>      diff --git a/builtin/am.c b/builtin/am.c
>      index c973bd96dc..2f89338ed7 100644
>      --- a/builtin/am.c
>      +++ b/builtin/am.c
>      @@ -484,7 +484,8 @@ static int run_applypatch_msg_hook(struct am_state *state)
>              ret = run_hook_le(NULL, "applypatch-msg", am_path(state, "final-commit"), NULL);
> 
>              if (!ret) {
>      -               FREE_AND_NULL(state->msg);
>      +               free(state->msg);
>      +               state->msg = NULL;
>                      if (read_commit_msg(state) < 0)
>                              die(_("'%s' was deleted by the applypatch-msg hook"),
>                                      am_path(state, "final-commit"));
> 
> So it looks to me like removing the "type T" rule breaks a lot of
> things, but that the change you made to the expression rule is good, and
> we should do that for the "type" rule as well. Your commit says the
> "expression rule already covers it", but this doesn't seem to be the
> case at all.
> 
> As an aside: Junio, did you mean to apply f8bb4631fb to next this way?
> Looks like a mis-applied scissor commit.

I can't reproduce that strange result with master, but get a scissors
line into the commit message as well.  The diff at the end looks
reasonable (contains just the manual stuff).  Here's what I did:

$ uname -a
Linux debian 4.9.0-3-amd64 #1 SMP Debian 4.9.30-2 (2017-06-12) x86_64 GNU/Linux

$ spatch -version
spatch version 1.0.4 with Python support and with PCRE support

$ git checkout -b cocci-free-null origin/master
Branch cocci-free-null set up to track remote branch master from origin.
Switched to a new branch 'cocci-free-null'

$ git am
# pasted my email
Applying: coccinelle: add a rule to make "expression" code use FREE_AND_NULL()
# results in commit message with scissor line, interesting..

$ git revert --no-edit 88ce3ef636 e140f7afdd 6a83d90207
[cocci-free-null b50d5eca5f] Revert "*.[ch] refactoring: make use of the FREE_AND_NULL() macro"
 12 files changed, 49 insertions(+), 23 deletions(-)
[cocci-free-null cf9072ce4e] Revert "coccinelle: make use of the "expression" FREE_AND_NULL() rule"
 2 files changed, 4 insertions(+), 2 deletions(-)
[cocci-free-null 97675d4dc2] Revert "coccinelle: make use of the "type" FREE_AND_NULL() rule"
 37 files changed, 142 insertions(+), 71 deletions(-)

$ make contrib/coccinelle/free.cocci.patch
GIT_VERSION = 2.13.2.537.g97675d4dc2
     SPATCH contrib/coccinelle/free.cocci
     SPATCH result: contrib/coccinelle/free.cocci.patch

$ patch -p0 <contrib/coccinelle/free.cocci.patch
patching file alias.c
patching file apply.c
patching file attr.c
patching file blame.c
patching file branch.c
patching file commit.c
patching file config.c
patching file credential.c
patching file diffcore-rename.c
patching file diff-lib.c
patching file diff.c
patching file dir.c
patching file grep.c
patching file line-log.c
patching file ll-merge.c
patching file mailinfo.c
patching file object.c
patching file pathspec.c
patching file read-cache.c
patching file refs/files-backend.c
patching file ref-filter.c
patching file sequencer.c
patching file sha1-array.c
patching file sha1_file.c
patching file transport.c
patching file transport-helper.c
patching file tree-diff.c
patching file tree.c
patching file builtin/am.c
patching file builtin/clean.c
patching file builtin/config.c
patching file builtin/index-pack.c
patching file builtin/pack-objects.c
patching file builtin/unpack-objects.c
patching file fast-import.c
patching file imap-send.c
patching file remote-testsvn.c
patching file http-push.c
patching file http.c

$ git diff HEAD^^^
diff --git a/builtin/am.c b/builtin/am.c
index c973bd96dc..eb24eb7b08 100644
--- a/builtin/am.c
+++ b/builtin/am.c
@@ -1074,8 +1074,11 @@ static void am_next(struct am_state *state)
 	struct object_id head;
 
 	FREE_AND_NULL(state->author_name);
+
 	FREE_AND_NULL(state->author_email);
+
 	FREE_AND_NULL(state->author_date);
+
 	FREE_AND_NULL(state->msg);
 	state->msg_len = 0;
 
diff --git a/builtin/worktree.c b/builtin/worktree.c
index c98e2ce5f5..0c5476ee9d 100644
--- a/builtin/worktree.c
+++ b/builtin/worktree.c
@@ -300,8 +300,10 @@ static int add_worktree(const char *path, const char *refname,
 	}
 
 	is_junk = 0;
-	FREE_AND_NULL(junk_work_tree);
-	FREE_AND_NULL(junk_git_dir);
+	free(junk_work_tree);
+	free(junk_git_dir);
+	junk_work_tree = NULL;
+	junk_git_dir = NULL;
 
 done:
 	if (ret || !opts->keep_locked) {
diff --git a/commit-slab.h b/commit-slab.h
index 333d81e370..42d16dcded 100644
--- a/commit-slab.h
+++ b/commit-slab.h
@@ -82,7 +82,8 @@ static MAYBE_UNUSED void clear_ ##slabname(struct slabname *s)		\
 	for (i = 0; i < s->slab_count; i++)				\
 		free(s->slab[i]);					\
 	s->slab_count = 0;						\
-	FREE_AND_NULL(s->slab);						\
+	free(s->slab);							\
+	s->slab = NULL;							\
 }									\
 									\
 static MAYBE_UNUSED elemtype *slabname## _at_peek(struct slabname *s,	\
diff --git a/gpg-interface.c b/gpg-interface.c
index d936f3a32f..8ab32df457 100644
--- a/gpg-interface.c
+++ b/gpg-interface.c
@@ -14,11 +14,16 @@ static const char *gpg_program = "gpg";
 
 void signature_check_clear(struct signature_check *sigc)
 {
-	FREE_AND_NULL(sigc->payload);
-	FREE_AND_NULL(sigc->gpg_output);
-	FREE_AND_NULL(sigc->gpg_status);
-	FREE_AND_NULL(sigc->signer);
-	FREE_AND_NULL(sigc->key);
+	free(sigc->payload);
+	free(sigc->gpg_output);
+	free(sigc->gpg_status);
+	free(sigc->signer);
+	free(sigc->key);
+	sigc->payload = NULL;
+	sigc->gpg_output = NULL;
+	sigc->gpg_status = NULL;
+	sigc->signer = NULL;
+	sigc->key = NULL;
 }
 
 static struct {
diff --git a/help.c b/help.c
index 88a3aeaeb9..5af5319caf 100644
--- a/help.c
+++ b/help.c
@@ -269,8 +269,9 @@ static void add_cmd_list(struct cmdnames *cmds, struct cmdnames *old)
 
 	for (i = 0; i < old->cnt; i++)
 		cmds->names[cmds->cnt++] = old->names[i];
-	FREE_AND_NULL(old->names);
+	free(old->names);
 	old->cnt = 0;
+	old->names = NULL;
 }
 
 /* An empirically derived magic number */
diff --git a/line-log.c b/line-log.c
index ab0709f9ae..f225447ebb 100644
--- a/line-log.c
+++ b/line-log.c
@@ -34,8 +34,9 @@ void range_set_init(struct range_set *rs, size_t prealloc)
 
 void range_set_release(struct range_set *rs)
 {
-	FREE_AND_NULL(rs->ranges);
+	free(rs->ranges);
 	rs->alloc = rs->nr = 0;
+	rs->ranges = NULL;
 }
 
 /* dst must be uninitialized! */
diff --git a/prio-queue.c b/prio-queue.c
index 126d096727..fc3860fdcb 100644
--- a/prio-queue.c
+++ b/prio-queue.c
@@ -27,9 +27,10 @@ void prio_queue_reverse(struct prio_queue *queue)
 
 void clear_prio_queue(struct prio_queue *queue)
 {
-	FREE_AND_NULL(queue->array);
+	free(queue->array);
 	queue->nr = 0;
 	queue->alloc = 0;
+	queue->array = NULL;
 	queue->insertion_ctr = 0;
 }
 
diff --git a/refs/ref-cache.c b/refs/ref-cache.c
index 76bb723c86..af2fcb2c12 100644
--- a/refs/ref-cache.c
+++ b/refs/ref-cache.c
@@ -82,8 +82,9 @@ static void clear_ref_dir(struct ref_dir *dir)
 	int i;
 	for (i = 0; i < dir->nr; i++)
 		free_ref_entry(dir->entries[i]);
-	FREE_AND_NULL(dir->entries);
+	free(dir->entries);
 	dir->sorted = dir->nr = dir->alloc = 0;
+	dir->entries = NULL;
 }
 
 struct ref_entry *create_dir_entry(struct ref_cache *cache,
diff --git a/rerere.c b/rerere.c
index 70634d456c..829b3b0f08 100644
--- a/rerere.c
+++ b/rerere.c
@@ -40,8 +40,9 @@ static void free_rerere_dirs(void)
 		free(rerere_dir[i]->status);
 		free(rerere_dir[i]);
 	}
-	FREE_AND_NULL(rerere_dir);
+	free(rerere_dir);
 	rerere_dir_nr = rerere_dir_alloc = 0;
+	rerere_dir = NULL;
 }
 
 static void free_rerere_id(struct string_list_item *item)
diff --git a/split-index.c b/split-index.c
index 83e39ec8d7..f519e60f87 100644
--- a/split-index.c
+++ b/split-index.c
@@ -167,9 +167,10 @@ void merge_base_index(struct index_state *istate)
 
 	ewah_free(si->delete_bitmap);
 	ewah_free(si->replace_bitmap);
-	FREE_AND_NULL(si->saved_cache);
+	free(si->saved_cache);
 	si->delete_bitmap  = NULL;
 	si->replace_bitmap = NULL;
+	si->saved_cache	   = NULL;
 	si->saved_cache_nr = 0;
 }
 


  parent reply	other threads:[~2017-06-28 22:21 UTC|newest]

Thread overview: 214+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-31 21:43 [PATCH 00/31] repository object Brandon Williams
2017-05-31 21:43 ` [PATCH 01/31] config: create config.h Brandon Williams
2017-05-31 21:43 ` [PATCH 02/31] config: don't include config.h by default Brandon Williams
2017-05-31 21:43 ` [PATCH 03/31] config: don't implicitly use gitdir Brandon Williams
2017-06-08 10:41   ` Johannes Schindelin
2017-06-08 16:37     ` Brandon Williams
2017-06-08 18:58       ` Johannes Schindelin
2017-06-08 19:19         ` Brandon Williams
2017-05-31 21:43 ` [PATCH 04/31] setup: don't perform lazy initialization of repository state Brandon Williams
2017-06-01 19:23   ` Stefan Beller
2017-06-02 18:39     ` Jeff King
2017-06-05 17:43       ` Brandon Williams
2017-06-05 18:20         ` Jeff King
2017-06-05 18:44           ` Brandon Williams
2017-05-31 21:43 ` [PATCH 05/31] environment: remove namespace_len variable Brandon Williams
2017-06-01 19:28   ` Stefan Beller
2017-06-01 21:09     ` Brandon Williams
2017-05-31 21:43 ` [PATCH 06/31] repo: introduce the repository object Brandon Williams
2017-06-01 19:53   ` Stefan Beller
2017-06-05 17:53     ` Brandon Williams
2017-06-05 18:31       ` Stefan Beller
2017-05-31 21:43 ` [PATCH 07/31] environment: place key repository state in the_repository Brandon Williams
2017-05-31 21:43 ` [PATCH 08/31] environment: store worktree " Brandon Williams
2017-05-31 21:43 ` [PATCH 09/31] setup: add comment indicating a hack Brandon Williams
2017-05-31 21:43 ` [PATCH 10/31] config: migrate the_configset to the_repository Brandon Williams
2017-05-31 21:43 ` [PATCH 11/31] repo: add index_state to struct repo Brandon Williams
2017-05-31 21:43 ` [PATCH 12/31] submodule-config: store the_submodule_cache in the_repository Brandon Williams
2017-05-31 21:43 ` [PATCH 13/31] repo: add repo_read_gitmodules Brandon Williams
2017-05-31 21:44 ` [PATCH 14/31] submodule: convert is_submodule_initialized to work on a repository Brandon Williams
2017-05-31 21:44 ` [PATCH 15/31] convert: convert get_cached_convert_stats_ascii to take an index Brandon Williams
2017-05-31 21:44 ` [PATCH 16/31] convert: convert crlf_to_git " Brandon Williams
2017-05-31 21:44 ` [PATCH 17/31] convert: convert convert_to_git_filter_fd " Brandon Williams
2017-05-31 21:44 ` [PATCH 18/31] convert: convert convert_to_git " Brandon Williams
2017-05-31 21:44 ` [PATCH 19/31] convert: convert renormalize_buffer " Brandon Williams
2017-05-31 21:44 ` [PATCH 20/31] tree: convert read_tree to take an index parameter Brandon Williams
2017-05-31 21:44 ` [PATCH 21/31] ls-files: convert overlay_tree_on_cache to take an index Brandon Williams
2017-05-31 21:44 ` [PATCH 22/31] ls-files: convert write_eolinfo " Brandon Williams
2017-05-31 21:44 ` [PATCH 23/31] ls-files: convert show_killed_files " Brandon Williams
2017-05-31 21:44 ` [PATCH 24/31] ls-files: convert show_other_files " Brandon Williams
2017-05-31 21:44 ` [PATCH 25/31] ls-files: convert show_ru_info " Brandon Williams
2017-05-31 21:44 ` [PATCH 26/31] ls-files: convert ce_excluded " Brandon Williams
2017-05-31 21:44 ` [PATCH 27/31] ls-files: convert prune_cache " Brandon Williams
2017-05-31 21:44 ` [PATCH 28/31] ls-files: convert show_files " Brandon Williams
2017-05-31 21:44 ` [PATCH 29/31] ls-files: factor out debug info into a function Brandon Williams
2017-05-31 21:44 ` [PATCH 30/31] ls-files: factor out tag calculation Brandon Williams
2017-05-31 21:44 ` [PATCH 31/31] ls-files: use repository object Brandon Williams
2017-06-01 20:36   ` Stefan Beller
2017-06-05 17:46     ` Brandon Williams
2017-05-31 22:56 ` [PATCH 00/31] " Stefan Beller
2017-05-31 23:01   ` Brandon Williams
2017-06-01 18:10 ` Brandon Williams
2017-06-01 18:28   ` Stefan Beller
2017-06-01 20:03     ` Jacob Keller
2017-06-08 23:40 ` [PATCH v2 00/32] " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 01/32] config: create config.h Brandon Williams
2017-06-08 23:40   ` [PATCH v2 02/32] config: remove git_config_iter Brandon Williams
2017-06-08 23:40   ` [PATCH v2 03/32] config: don't include config.h by default Brandon Williams
2017-06-08 23:40   ` [PATCH v2 04/32] config: don't implicitly use gitdir Brandon Williams
2017-06-12 19:57     ` Brandon Williams
2017-06-08 23:40   ` [PATCH v2 05/32] setup: don't perform lazy initialization of repository state Brandon Williams
2017-06-08 23:40   ` [PATCH v2 06/32] environment: remove namespace_len variable Brandon Williams
2017-06-08 23:40   ` [PATCH v2 07/32] repository: introduce the repository object Brandon Williams
2017-06-09  8:53     ` [PATCH 0/2] Add a freez() wrapper Ævar Arnfjörð Bjarmason
2017-06-09 14:53       ` Brandon Williams
2017-06-09 22:04       ` [PATCH v2 0/2] Add a FREEZ() wrapper macro Ævar Arnfjörð Bjarmason
2017-06-09 22:04       ` [PATCH v2 1/2] git-compat-util: add a FREEZ() wrapper around free(ptr); ptr = NULL Ævar Arnfjörð Bjarmason
2017-06-09 22:27         ` Jonathan Nieder
2017-06-09 23:37           ` Eric Wong
2017-06-10  1:40             ` Junio C Hamano
2017-06-10  3:21               ` Eric Wong
2017-06-10  7:25                 ` Jeff King
2017-06-15 16:48                   ` Junio C Hamano
2017-06-15 17:13                     ` Ævar Arnfjörð Bjarmason
2017-06-15 21:06                       ` [PATCH v3 0/2] Add a FREE_AND_NULL() wrapper macro Ævar Arnfjörð Bjarmason
2017-06-15 22:00                         ` Junio C Hamano
2017-06-15 23:15                           ` [PATCH v4 0/6] " Ævar Arnfjörð Bjarmason
2017-06-15 23:15                           ` [PATCH v4 1/6] git-compat-util: add a FREE_AND_NULL() wrapper around free(ptr); ptr = NULL Ævar Arnfjörð Bjarmason
2017-06-15 23:15                           ` [PATCH v4 2/6] coccinelle: add a rule to make "type" code use FREE_AND_NULL() Ævar Arnfjörð Bjarmason
2017-06-15 23:15                           ` [PATCH v4 3/6] coccinelle: make use of the "type" FREE_AND_NULL() rule Ævar Arnfjörð Bjarmason
2017-06-15 23:15                           ` [PATCH v4 4/6] coccinelle: add a rule to make "expression" code use FREE_AND_NULL() Ævar Arnfjörð Bjarmason
2017-06-16 19:43                             ` Junio C Hamano
2017-06-25  8:01                               ` René Scharfe
2017-06-28 21:39                                 ` Ævar Arnfjörð Bjarmason
2017-06-28 22:00                                   ` Junio C Hamano
2017-06-28 22:17                                     ` Ævar Arnfjörð Bjarmason
2017-06-28 22:21                                   ` René Scharfe [this message]
2017-06-28 22:30                                     ` Ævar Arnfjörð Bjarmason
2017-06-28 23:15                                       ` Junio C Hamano
2017-06-28 22:30                                     ` René Scharfe
2017-06-28 22:35                                       ` Ævar Arnfjörð Bjarmason
2017-06-28 22:44                                     ` René Scharfe
2017-06-15 23:15                           ` [PATCH v4 5/6] coccinelle: make use of the "expression" FREE_AND_NULL() rule Ævar Arnfjörð Bjarmason
2017-06-15 23:15                           ` [PATCH v4 6/6] *.[ch] refactoring: make use of the FREE_AND_NULL() macro Ævar Arnfjörð Bjarmason
2017-06-15 21:06                       ` [PATCH v3 1/2] git-compat-util: add a FREE_AND_NULL() wrapper around free(ptr); ptr = NULL Ævar Arnfjörð Bjarmason
2017-06-15 21:07                       ` [PATCH v3 2/2] *.[ch] refactoring: make use of the FREE_AND_NULL() macro Ævar Arnfjörð Bjarmason
2017-06-10  6:55           ` [PATCH v2 1/2] git-compat-util: add a FREEZ() wrapper around free(ptr); ptr = NULL Andreas Schwab
2017-06-09 22:04       ` [PATCH v2 2/2] *.[ch] refactoring: make use of the FREEZ() macro Ævar Arnfjörð Bjarmason
2017-06-09  8:53     ` [PATCH 1/2] git-compat-util: add a freez() wrapper around free(x); x = NULL Ævar Arnfjörð Bjarmason
2017-06-09 12:04       ` Christian Couder
2017-06-09  8:53     ` [PATCH 2/2] *.[ch] refactoring: make use of the freez() wrapper Ævar Arnfjörð Bjarmason
2017-06-09 10:12       ` Martin Ågren
2017-06-09 10:58         ` Ævar Arnfjörð Bjarmason
2017-06-09 14:48           ` Brandon Williams
2017-06-08 23:40   ` [PATCH v2 08/32] environment: place key repository state in the_repository Brandon Williams
2017-06-08 23:40   ` [PATCH v2 09/32] environment: store worktree " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 10/32] setup: add comment indicating a hack Brandon Williams
2017-06-08 23:40   ` [PATCH v2 11/32] config: read config from a repository object Brandon Williams
2017-06-08 23:40   ` [PATCH v2 12/32] repository: add index_state to struct repo Brandon Williams
2017-06-08 23:40   ` [PATCH v2 13/32] submodule-config: store the_submodule_cache in the_repository Brandon Williams
2017-06-08 23:40   ` [PATCH v2 14/32] submodule: add repo_read_gitmodules Brandon Williams
2017-06-08 23:40   ` [PATCH v2 15/32] submodule: convert is_submodule_initialized to work on a repository Brandon Williams
2017-06-08 23:40   ` [PATCH v2 16/32] convert: convert get_cached_convert_stats_ascii to take an index Brandon Williams
2017-06-08 23:40   ` [PATCH v2 17/32] convert: convert crlf_to_git " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 18/32] convert: convert convert_to_git_filter_fd " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 19/32] convert: convert convert_to_git " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 20/32] convert: convert renormalize_buffer " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 21/32] tree: convert read_tree to take an index parameter Brandon Williams
2017-06-08 23:40   ` [PATCH v2 22/32] ls-files: convert overlay_tree_on_cache to take an index Brandon Williams
2017-06-08 23:40   ` [PATCH v2 23/32] ls-files: convert write_eolinfo " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 24/32] ls-files: convert show_killed_files " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 25/32] ls-files: convert show_other_files " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 26/32] ls-files: convert show_ru_info " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 27/32] ls-files: convert ce_excluded " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 28/32] ls-files: convert prune_cache " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 29/32] ls-files: convert show_files " Brandon Williams
2017-06-08 23:40   ` [PATCH v2 30/32] ls-files: factor out debug info into a function Brandon Williams
2017-06-08 23:40   ` [PATCH v2 31/32] ls-files: factor out tag calculation Brandon Williams
2017-06-08 23:41   ` [PATCH v2 32/32] ls-files: use repository object Brandon Williams
2017-06-09  0:08     ` Brandon Williams
2017-06-10  5:59       ` Junio C Hamano
2017-06-12 21:24         ` Brandon Williams
2017-06-10  0:40   ` [PATCH v2 00/32] " Jonathan Tan
2017-06-10  6:07     ` Jeff King
2017-06-10  6:13       ` Jeff King
2017-06-11  0:43         ` Brandon Williams
2017-06-12 19:10           ` Jonathan Tan
2017-06-11  0:35       ` Brandon Williams
2017-06-12  5:24       ` Stefan Beller
2017-06-12 21:23         ` Jeff King
2017-06-12 19:01       ` Jonathan Tan
2017-06-12 19:11         ` Brandon Williams
2017-06-12 20:04           ` Jonathan Tan
2017-06-12 21:28             ` Jeff King
2017-06-20 19:19   ` [PATCH v3 00/20] " Brandon Williams
2017-06-20 19:19     ` [PATCH v3 01/20] setup: don't perform lazy initialization of repository state Brandon Williams
2017-06-20 19:19     ` [PATCH v3 02/20] setup: add comment indicating a hack Brandon Williams
2017-06-20 19:19     ` [PATCH v3 03/20] environment: remove namespace_len variable Brandon Williams
2017-06-20 19:19     ` [PATCH v3 04/20] repository: introduce the repository object Brandon Williams
2017-06-20 19:57       ` Stefan Beller
2017-06-21 21:27         ` Brandon Williams
2017-06-21 21:31           ` Stefan Beller
2017-06-20 21:31       ` Jonathan Tan
2017-06-20 21:56         ` Brandon Williams
2017-06-20 19:19     ` [PATCH v3 05/20] environment: place key repository state in the_repository Brandon Williams
2017-06-20 21:59       ` Jonathan Tan
2017-06-20 19:19     ` [PATCH v3 06/20] environment: store worktree " Brandon Williams
2017-06-20 19:19     ` [PATCH v3 07/20] path: create path.h Brandon Williams
2017-06-20 19:19     ` [PATCH v3 08/20] path: always pass in commondir to update_common_dir Brandon Williams
2017-06-20 19:19     ` [PATCH v3 09/20] path: convert strbuf_git_common_path to take a 'struct repository' Brandon Williams
2017-06-20 19:19     ` [PATCH v3 10/20] path: convert do_git_path " Brandon Williams
2017-06-20 22:23       ` Jonathan Tan
2017-06-21 21:20         ` Brandon Williams
2017-06-20 19:19     ` [PATCH v3 11/20] path: construct correct path to a worktree's index Brandon Williams
2017-06-20 21:10       ` Stefan Beller
2017-06-20 23:02       ` Jonathan Nieder
2017-06-21  0:39         ` Brandon Williams
2017-06-21  2:10       ` Jonathan Nieder
2017-06-21  2:30         ` Jonathan Nieder
2017-06-21 15:43         ` Brandon Williams
2017-06-21 17:57           ` Jonathan Nieder
2017-06-21 18:48             ` Junio C Hamano
2017-06-20 19:19     ` [PATCH v3 12/20] path: add repo_git_path and strbuf_repo_git_path Brandon Williams
2017-06-20 19:19     ` [PATCH v3 13/20] path: add repo_worktree_path and strbuf_repo_worktree_path Brandon Williams
2017-06-20 19:19     ` [PATCH v3 14/20] config: read config from a repository object Brandon Williams
2017-06-20 19:19     ` [PATCH v3 15/20] repository: add index_state to struct repo Brandon Williams
2017-06-21 22:50       ` Jonathan Tan
2017-06-21 22:54         ` Brandon Williams
2017-06-21 23:00           ` Stefan Beller
2017-06-20 19:19     ` [PATCH v3 16/20] submodule-config: store the_submodule_cache in the_repository Brandon Williams
2017-06-20 19:19     ` [PATCH v3 17/20] submodule: add repo_read_gitmodules Brandon Williams
2017-06-20 19:19     ` [PATCH v3 18/20] submodule: convert is_submodule_initialized to work on a repository Brandon Williams
2017-06-20 19:19     ` [PATCH v3 19/20] repository: enable initialization of submodules Brandon Williams
2017-06-21 23:00       ` Jonathan Tan
2017-06-21 23:09         ` Brandon Williams
2017-06-20 19:19     ` [PATCH v3 20/20] ls-files: use repository object Brandon Williams
2017-06-21 22:48       ` Jonathan Tan
2017-06-20 19:23     ` [PATCH v3 00/20] " Stefan Beller
2017-06-22 18:43     ` [PATCH v4 " Brandon Williams
2017-06-22 18:43       ` [PATCH v4 01/20] setup: don't perform lazy initialization of repository state Brandon Williams
2017-06-22 18:43       ` [PATCH v4 02/20] setup: add comment indicating a hack Brandon Williams
2017-06-22 18:43       ` [PATCH v4 03/20] environment: remove namespace_len variable Brandon Williams
2017-06-22 18:43       ` [PATCH v4 04/20] repository: introduce the repository object Brandon Williams
2017-06-22 18:43       ` [PATCH v4 05/20] environment: place key repository state in the_repository Brandon Williams
2017-06-22 18:43       ` [PATCH v4 06/20] environment: store worktree " Brandon Williams
2017-06-22 18:43       ` [PATCH v4 07/20] path: create path.h Brandon Williams
2017-06-22 18:43       ` [PATCH v4 08/20] path: always pass in commondir to update_common_dir Brandon Williams
2017-06-22 18:43       ` [PATCH v4 09/20] path: convert strbuf_git_common_path to take a 'struct repository' Brandon Williams
2017-06-22 18:43       ` [PATCH v4 10/20] path: convert do_git_path " Brandon Williams
2017-06-22 18:43       ` [PATCH v4 11/20] path: worktree_git_path() should not use file relocation Brandon Williams
2017-06-22 18:43       ` [PATCH v4 12/20] path: add repo_git_path and strbuf_repo_git_path Brandon Williams
2017-06-22 18:43       ` [PATCH v4 13/20] path: add repo_worktree_path and strbuf_repo_worktree_path Brandon Williams
2017-06-22 18:43       ` [PATCH v4 14/20] config: read config from a repository object Brandon Williams
2017-06-22 18:43       ` [PATCH v4 15/20] repository: add index_state to struct repo Brandon Williams
2017-06-22 20:16         ` Junio C Hamano
2017-06-22 20:35           ` Brandon Williams
2017-06-22 22:10             ` Junio C Hamano
2017-06-22 18:43       ` [PATCH v4 16/20] submodule-config: store the_submodule_cache in the_repository Brandon Williams
2017-06-22 18:43       ` [PATCH v4 17/20] submodule: add repo_read_gitmodules Brandon Williams
2017-06-22 18:43       ` [PATCH v4 18/20] submodule: convert is_submodule_initialized to work on a repository Brandon Williams
2017-06-22 18:43       ` [PATCH v4 19/20] repository: enable initialization of submodules Brandon Williams
2017-06-22 18:43       ` [PATCH v4 20/20] ls-files: use repository object Brandon Williams
2017-06-22 19:42       ` [PATCH v4 00/20] " Stefan Beller
2017-06-23 16:44       ` Jeff Hostetler
2017-06-23 17:38         ` Junio C Hamano

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=433f9fb7-a202-1091-46de-04535b2a49e1@web.de \
    --to=l.s.r@web.de \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.