Re: git fetch --reference?

2 messages, 2 authors, 2016-08-11 · open the first message on its own page

Re: git fetch --reference?

From: Junio C Hamano <hidden>
Date: 2016-08-11 19:24:06

"Michael K. Edwards" [off-list ref] writes:
When setting up a working area for kernel integration for a new
embedded target, I generally do a "git clone --reference" so that the
new area has its own repository (and its own branch structure) but
most of the blobs come from a local reference copy.  But now that I'm
integrating bits from several non-trivially divergent trees (mtd-2.6,
netdev-2.6, linux-2.6.16.y, etc.), it would be nice to avoid
re-downloading blobs for these additional remote branches, which are
also available in the local reference copy.  Is it feasible to
implement "git fetch --reference" for this purpose?  Or is there a
better way to manage this sort of integration effort?
I am somewhat doubtful that this is common enough to warrant
adding an extra option to "git fetch", but you could add
alternates to these new reference object stores before
initiating the fetch.

For example, if you have pristine linux-2.6/ and your work was
started by cloning with --reference to it into my-2.6/, you
would have something like this:

	$ cd /usr/src
	$ ls -F
        linux-2.6/ linux-2.6.16.y/ netdev-2.6/ my-2.6/
	$ cd my-2.6/
        $ cat .git/objects/info/alternates
	/usr/src/linux-2.6/.git/objects

Then you would (still in my-2.6 repository):

	$ cat >>.git/objects/info/alternates
        /usr/src/linux-2.6.16.y/.git/objects
        /usr/src/netdev-2.6/.git/objects
        $ git pull ../netdev-2.6/ ALL

which would hopefully not download _any_ objects but just gets
the ALL branch and makes a merge commit in your working
repository.

        

Re: git fetch --reference?

From: Michael K. Edwards <hidden>
Date: 2016-08-11 20:39:51

On 11/14/06, Junio C Hamano [off-list ref] wrote:
I am somewhat doubtful that this is common enough to warrant
adding an extra option to "git fetch", but you could add
alternates to these new reference object stores before
initiating the fetch.
...
Thanks, that's what I was looking for.  I can just set up a "tracking"
tree where I don't attempt any merges, include it in the alternates
for each working tree, and "git fetch" in the tracking tree when it's
convenient.  Now, will tags from the tracking tree propagate into the
working trees?

Cheers,
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help