On Wed, 2010-07-28 at 09:27 +1000, Dave Chinner wrote:
> On Tue, Jul 27, 2010 at 11:16:06AM -0500, Alex Elder wrote:
> > Some recent commits have resulted in changes to
> > the XFS master branch that result in non-trivial
> > merges, which are not something we want to have in
> > our git history. (I didn't realize this when I
> > pushed my last set of updates out, unfortunately.)
> > To remedy this, I'm have re-based the XFS master
> > branch on oss.sgi.com against v2.6.35-rc6.
> Alex, this is a bit annoying. Rebases are a real pain for anyone
> downstream that is using git in non-trivial ways. I'll give you an
> idea of what this means to me - for the xfs tree directly:
I'm not going to argue, I know it's bad. I'll try to offer
a little explanation though.
Christoph told me that Linus dislikes non-trivial merges,
and suggested I re-base the tree. I have been trying to
avoid having this sort of effect on people using the
repository. But I opted in this case to upset them
(and you) rather than Linus, and went to work re-basing
. . .
> > If you have a different branch checked out, you
> > can do this instead to force the re-based commits
> > to land in your "xfs-master" branch:
> > git pull git://oss.sgi.com/xfs/xfs.git +master:xfs-master
> You don't want to do this - the forced merge causes a branch in
> history in the local repository and hence it's no longer an
> identical copy of the upstream repository any more. I got caught by
> this on a previous rebase when I started pushing commits back out
> and people tried to pull them...
The "+" in the refspec on the command above is there
intentionally, to make the local branch "xfs-master"
to be updated to match the remote *without* doing a merge.
If my local "xfs-master" branch is at the previous head
for "master", it works for me.
With that refspec, the "git fetch" part of the pull
does the forced update; the "git merge" part of the
pull should then find the branch "Already up-to-date."