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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to