ProjectRepairer: Rsync from a hardlink snapshot
rsync fails when a file it is transferring is unlinked underneath it,
which can happen on repositories that repack often. Link the files to
copy into a snapshot dir next to the repository's objects dir, then
rsync from there. A hardlink keeps the inode alive after the original
name is gone, so the transfer always sees a stable set of files. The
snapshot is deleted once the transfer for that action finishes.
Change-Id: I47ddf03c63180542dbfe47582941284d3f691f9e
1 file changed