Re: [PATCH] A new merge stragety 'subtree'.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Junio C Hamano <junkio@xxxxxxx> wrote:
> For normal merge strategies, if you are on branch A and merge
> branch B into it, what you will get is exactly the same as what
> you would get by merging branch A while being on branch A
> (modulo the direction of conflict markers).  With the subtree
> merge, it is not the case anymore.  If I pull from git-gui.git,
> the resulting tree look like git.git with Shawn's updates.  If
> Shawn pulls from git.git, even after I did some changes on my
> own to git-gui subdirectory, bypassing his tree, he will get a
> merged result pertaining to git-gui.git repository
> (i.e. git-gui/ subdirectory of what I have).  This way, we can
> continue merging from each other.
> 
> Although I do not plan to commit anything in git-gui/ part of my
> tree myself, bypassing Shawn, it is nice to know that it will
> not introduce problems down the road.

This does actually cause a problem if you merge a git.git commit
into git-gui.git (by stripping the git-gui/ part off).  The problem
is the entire git.git history would then become the second parent
of the git-gui.git merge commit, and suddenly the git-gui.git
repository increases by >11 MiB in size...  ;-)

With regards to maintaining git-gui: I'll apply all patches to my
tree and do testing there, then ask Junio to merge a tagged release
over to git.git for inclusion in the next git release.

To avoid pulling the entire git.git history into git-gui, I'd ask
that anyone bypassing me (e.g. if I'm being horribly unresponsive
one week) checkout the git-gui branch from git.git, apply the
change(s) there, then merge that branch into git.git using the
subtree strategy.  This way I can later fast-forward git-gui.git
to the fixed commit, without sucking in more than I bargained for.

For example:

	git log -n1 -- git-gui
	# copy the second parent...
	git checkout -b fixgg <secondparent>
	# do fixes...
	git checkout master
	git merge -s subtree fixgg

Then I can later obtain `fixgg` from the merge commit in git.git
and update git-gui.git, without sucking in git.git's objects.

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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]