This series contains patches to address a significant push performance regression in repositories with large amounts of refs. It avoids performing expensive edge marking unless the repository is shallow. The first patch in the series is a fix for a minor typo I discovered when editing the documentation. The second patch implements git rev-list --objects-edge-aggressive, and the final patch ensures it's used for shallow repos only. As the final patch was suggested by Junio, it will need his sign-off. I considered Junio's suggestion for a --thin-aggressive, but felt that it was better to have the fix localized to a single location to improve maintainability and that --thin-aggressive would be uncommonly used outside of automatic invocations. Also, as I understand it, the goal of thin packs is to improve performance by sending fewer objects. In most cases, the benefit of the decreased time spent marking edges push times will dwarf the increase in time it takes for a slightly larger pack to go over the wire, so it doesn't make sense to make this a tunable. The original fix was suggested by Duy Nguyen. brian m. carlson (3): Documentation: add missing article in rev-list-options.txt rev-list: add an option to mark fewer edges as uninteresting pack-objects: use --objects-edge-aggressive only for shallow repos Documentation/git-rev-list.txt | 3 ++- Documentation/rev-list-options.txt | 7 ++++++- builtin/pack-objects.c | 4 +++- list-objects.c | 4 ++-- revision.c | 6 ++++++ revision.h | 1 + 6 files changed, 20 insertions(+), 5 deletions(-) -- 2.2.1.209.g41e5f3a -- 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