* 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
* Re: git fetch --reference
2013-09-03 16:55 git fetch --reference Yann Droneaud
@ 2013-09-03 17:19 ` Andreas Schwab
0 siblings, 0 replies; 2+ messages in thread
From: Andreas Schwab @ 2013-09-03 17:19 UTC (permalink / raw)
To: Yann Droneaud; +Cc: git
Yann Droneaud <ydroneaud@opteya.com> writes:
> So what's the best way to do a git fetch <remote>, copying objects from
> another local repository
> to resolve delta ?
IMHO the best way is to add a remote for the local repository, fetch
from it, then fetch from <remote>.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ 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).