Use pack-*.keep files during fetch and receive-pack to prevent GC
C Git creates a pack-*.keep for a pack file while the pack file is
being stored on disk between the time it is initially created by
index-pack and when all refs finished being updated with the new
values. By creating this file we permit concurrent "git gc" or
"git repack" in a repository while a fetch or push into the same
repository is occurring. The pack-*.keep file prevents the gc
task from deleting the pack file, which is necessary to prevent
the objects from disappearing, as the contained objects were not
reachable from the set of existing refs when the gc started.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>