On Fri, Mar 1, 2019 at 12:50 PM Alban Gruin <alban.gruin@xxxxxxxxx> wrote: > Until now, name_rev() named every commit it found, even it the name s/even it/even if/ > would ultimately be unused. > [...] > Signed-off-by: Alban Gruin <alban.gruin@xxxxxxxxx> > --- > diff --git a/builtin/name-rev.c b/builtin/name-rev.c > @@ -107,12 +107,18 @@ static int name_rev(struct commit *commit, > copy_data: > - name->tip_name = tip_name; > + if (commit_list_contains(commits, commit) || > + commit_list_count(commits) == 0) { Minor: It would probably be more efficient to check if the count is 0 first, and only search the list if not. By the way, how big is 'commits' likely to get? Will the linear scan done by commit_list_contains() become an issue? Should it be using a hash table instead? > + name->tip_name = tip_name; > + free_alloc = 0; > + } else { > + name->tip_name = NULL; > + }