I surprised myself trying to run git fetch --reference <local directory> <remote> in the hope git would use my <local directory> to resolve objects present in <remote> but not in my current repository ... just like git clone --reference <local directory> <URL>:

--reference <repository>
If the reference repository is on the local machine, automatically setup .git/objects/info/alternates to obtain objects from the reference repository. Using an already existing repository as an alternate will require fewer objects to be copied from the repository being cloned, reducing network and local storage

git fetch --reference would set up a temporary objects/info/alternates ... and skrew everything up.

Having a git fetch --reference option would be great, so that I could fetch one remote and the other related one in a row without any special setup. [At this point, you're likely to suggest me to use a local mirror that I would git clone/fetch from, and your probably right, but for a one time hack, it's cumbersome.]

In the end I've read http://git-blame.blogspot.fr/2012/08/bringing-bit-more-sanity-to-alternates.html

First I thought having "git alternatives add" would enable me to temporary add the --reference <directory> before running git fetch ... But it seems --reference doesn't work as I first understand it: git clone --reference don't *copy* object from the --reference <repository> instead of *copying* them from the cloned <url>, eg. using --reference <repository> as kind of mirror. Instead --reference <repository> seems to add a kind of a symlink. And if the --reference <repository> disappear, things are going to be lost. See this : http://randyfay.com/content/git-clone-reference-considered-harmfu

So setting a temporary alternate with git fetch --reference is a non-sense ... To achieve what I intend to do with this option, a git repack would need to be issued to actually
copy the objects from the --reference <repository>.

So what's the best way to do a git fetch <remote>, copying objects from another local repository
to resolve delta ?


Yann Droneaud

To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to