Re: Borrowing objects from nearby repositories
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:00:31
Ævar Arnfjörð Bjarmason [off-list ref] writes:
quoted
1) Introduce '--borrow' to `git-fetch`. This would behave similarlyto '--reference', except that it operates on a temporary basis, and does not assume that the reference repository will exist after the operation completes, so any used objects are copied into the local objects database. In theory, this mechanism would be distinct from --reference', so if both are used, some objects would be copied, and some objects would be accessible via a reference repository referenced by the alternates file. Isn't this the same as git clone --reference <path> --no-hardlinks <url> ? Also without --no-hardlinks we're not assuming that the other repo doesn't go away (you could rm-rf it), just that the files won't be *modified*, which Git won't do, but you could manually do with other tools, so the default is to hardlink.
I think that the standard practice with the existing toolset is to
clone with reference and then repack. That is:
$ git clone --reference <borrowee> git://over/there mine
$ cd mine
$ git repack -a -d
And then you can try this:
$ mv .git/objects/info/alternates .git/objects/info/alternates.disabled
$ git fsck
to make sure that you are no longer borrowing anything from the
borrowee. Once you are satisfied, you can remove the saved-away
alternates.disabled file.