git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 0/3] Improve push performance with lots of refs

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Dec 20, 2014, 22:51 UTC
Message-ID
<1419115873-166686-1-git-send-email-sandals@crustytoothpaste.net>

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
Next: brian m. carlson
Message 1 of 4 in “Improve push performance with lots of refs”
  1. 0/3 Improve push performance with lots of refsbrian m. carlson, Dec 20, 2014
  2. 1/3 Documentation: add missing article in rev-list-options.txtbrian m. carlson, Dec 20, 2014
  3. 2/3 rev-list: add an option to mark fewer edges as uninterestingbrian m. carlson, Dec 20, 2014
  4. 3/3 pack-objects: use --objects-edge-aggressive only for shallow reposbrian m. carlson, Dec 20, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.