git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git fetch --reference
@ 2013-09-03 16:55 Yann Droneaud
  2013-09-03 17:19 ` Andreas Schwab
  0 siblings, 1 reply; 2+ messages in thread
From: Yann Droneaud @ 2013-09-03 16:55 UTC (permalink / raw)
  To: git; +Cc: ydroneaud

Hi,

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
            costs.

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 ?

Regards.

-- 
Yann Droneaud
OPTEYA

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2013-09-03 17:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-03 16:55 git fetch --reference Yann Droneaud
2013-09-03 17:19 ` Andreas Schwab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).