Bj?rn Steinbrink <B.Steinbrink@xxxxxx> wrote: > If we found no refs that may be used for git-describe with the current > options, then die early instead of pointlessly walking the whole history. > > Signed-off-by: Bj?rn Steinbrink <B.Steinbrink@xxxxxx> > --- > In git.git with all the tags dropped, this makes "git describe" go down > from 0.244 to 0.003 seconds for me. This is especially noticeable with > "git submodule" which calls describe with increasing levels of allowed > refs to be matched. Without tags, this means that it walks the whole > history in the submodule twice (first annotated, then plain tags), just > to find out that it can't describe the thing anyway. > > I'm not particularly sure about found_names actually counting the found > names, it was just out of the thought that maybe the walking code could > make use of it, but I didn't actually check that and ran out of time, so > I'm sending this version, hoping that it doesn't suck too much. This seems reasonable to me. Really you don't need found_names to be a counter, but could just always set it to 1 every time the add_to_known_names function is called. All you care about is that add_to_known_names was invoked at least once. Also, I really think that first paragraph after the --- should have been part of the commit message. The message above doesn't justify the change, even if it is fairly trivial, without that additional explanation. > @@ -39,6 +40,8 @@ static void add_to_known_names(const char *path, > const unsigned char *sha1) > { > struct commit_name *e = commit->util; > + if (!e) > + found_names++; > if (!e || e->prio < prio) { > size_t len = strlen(path)+1; > free(e); -- Shawn. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html