diff options
author | Junio C Hamano <gitster@pobox.com> | 2023-06-23 21:21:17 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-06-23 21:21:17 +0300 |
commit | 58ecb2e3838b1dfd9c3705de88dcd491fa4e44fc (patch) | |
tree | 6c7c6b7fd9d9866908fb68c53847aceb3915b7a0 /Documentation/config | |
parent | 891e631401268ba513d903e0646c2967d629a8d9 (diff) | |
parent | 4dc16e2cb05fa467c3ef507679ae625f785770cf (diff) |
Merge branch 'tb/gc-recent-object-hook'
"git pack-objects" learned to invoke a new hook program that
enumerates extra objects to be used as anchoring points to keep
otherwise unreachable objects in cruft packs.
* tb/gc-recent-object-hook:
gc: introduce `gc.recentObjectsHook`
reachable.c: extract `obj_is_recent()`
Diffstat (limited to 'Documentation/config')
-rw-r--r-- | Documentation/config/gc.txt | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Documentation/config/gc.txt b/Documentation/config/gc.txt index 7f95c866e1..ca47eb2008 100644 --- a/Documentation/config/gc.txt +++ b/Documentation/config/gc.txt @@ -130,6 +130,21 @@ or rebase occurring. Since these changes are not part of the current project most users will want to expire them sooner, which is why the default is more aggressive than `gc.reflogExpire`. +gc.recentObjectsHook:: + When considering whether or not to remove an object (either when + generating a cruft pack or storing unreachable objects as + loose), use the shell to execute the specified command(s). + Interpret their output as object IDs which Git will consider as + "recent", regardless of their age. By treating their mtimes as + "now", any objects (and their descendants) mentioned in the + output will be kept regardless of their true age. ++ +Output must contain exactly one hex object ID per line, and nothing +else. Objects which cannot be found in the repository are ignored. +Multiple hooks are supported, but all must exit successfully, else the +operation (either generating a cruft pack or unpacking unreachable +objects) will be halted. + gc.rerereResolved:: Records of conflicted merge you resolved earlier are kept for this many days when 'git rerere gc' is run. |