This is a resubmission of Jeff King's patch series to speed up git tag --contains with some changes. It's been cooking for a while as: * jk/tag-contains (2010-07-05) 4 commits - Why is "git tag --contains" so slow? - default core.clockskew variable to one day - limit "contains" traversals based on commit timestamp - tag: speed up --contains calculation The idea of the bottom one is probably Ok, except that the use of object flags needs to be rethought, or at least the helper needs to be moved to builtin/tag.c to make it clear that it should not be used outside the current usage context. I've moved the relevant code from commit.[ch] to builtin/tag.c as Junio's comment suggested. So IMO the "tag: speed up --contains calculation" patch is ready to be applied. The next two patches look OK to me, but they need some documentation for the core.clockskew variable, which perhaps should be renamed to tag.clockskew, or was the plan to use it for other things in the future? Is the "Why is "git tag --contains" so slow?" utility something we want? We'd need some documentation for it, which I could write. However I couldn't find the magic that turns --all into a traversal of all revisions, and how that would work with supporting another --verbose command-line option, to print out the revisions that have high clock skew. I monkeypatched that in locally and found it very useful to find the worst-case revisions, which in my case were on topic branches that could simply be deleted. In any case I've been running git with this series for a while, and it's really helpful for a repository I work on with ~10k tags. I'm willing to help get it accepted into the core. Jeff King (4): tag: speed up --contains calculation limit "contains" traversals based on commit timestamp default core.clockskew variable to one day Why is "git tag --contains" so slow? .gitignore | 1 + Makefile | 1 + builtin.h | 1 + builtin/skew.c | 50 ++++++++++++++++++++++++++++++++++++ builtin/tag.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- git.c | 1 + 6 files changed, 129 insertions(+), 1 deletions(-) create mode 100644 builtin/skew.c -- 1.7.5.3 -- 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