>> Tim Starling <tstarl...@wikimedia.org> wrote:
> I wrote:
>> It doesn't work, I'm afraid. Because of the implicit rebase on push,
>> usually subsequent changesets have a different parent. So when you
>> diff between the two branches, you get all of the intervening commits
>> which were merged to the master.
>
> I was hoping that someone was going to say "you're wrong, making those
> diffs is easy, here's how." But I take it by the silence that I'm not
> wrong, and it really is hard.


I just tried to push second commit to 
https://gerrit.wikimedia.org/r/#change,3841
patchet three.

If you don't start from "scratch" i.e. base your commit on the parent:

8824515e571eadd4a63b09e1331f35309315603f

(now I have

$ git log HEAD ^HEAD^^^
commit e67af5bbd843db3062cc0082254b69aae3d1241b
Author: saper <sa...@saper.info>
Date:   Wed Mar 28 22:06:17 2012 +0200

    An example how a foreign key should be added to the table
    
    Change-Id: I0da5b25f4b4499facac6c410fa7ab74250935288

commit 96692fb23c00cb726144290b108623896cf24834
Author: Marc A. Pelletier <m...@uberbox.org>
Date:   Tue Mar 27 22:44:32 2012 -0400

    (bug 5445) remove autoblocks when user is unblocked
    
(...comment truncated...)
    
    Change-Id: I4aa820ae9bbd962a12d0b48b6c638a1b6ff4efc9

This is the current HEAD:

commit 8824515e571eadd4a63b09e1331f35309315603f
Author: Santhosh Thottingal <santhosh.thottin...@gmail.com>
Date:   Wed Mar 28 11:25:45 2012 +0530


Trying to commit e67af5bbd843db3062cc0082254b69aae3d1241b
makes gerrit say:

 ! [remote rejected] HEAD -> refs/changes/3841 (squash commits first)

It does not matter if I use the same change ID or not. It knows
exactly where it should go but it still refuses it.

I have managed to workaround this by creating a branch, doing
lots of commits there, merging it, and push the merge to gerrit.

But then it uploads lots of unrelated changets:

https://gerrit.wikimedia.org/r/#change,3706
https://gerrit.wikimedia.org/r/#change,3707
https://gerrit.wikimedia.org/r/#change,3708 (but this was outside of the branch)
https://gerrit.wikimedia.org/r/#change,3709

The commit tree looked like:

     private branch:  3706 --- 3707 ---
                     /                 \
   62562768cf8f2696 + -------- 3708 ----+ 3709 (merge)


As you can see, although there were so many changesets,
they all have dependencies set properly.

Is this a better way? I don't know...

I wonder why in this case gerrit does not complain
with its usual  (squash commits first)

Having private branches with other people
would certainly help to work together on issues.

I tried to submit an improvement to 
https://gerrit.wikimedia.org/r/#change,3841 and
it seems I can't do this the other way than 
rebasing my changes to the parent of the changeset
(*not* master). Not sure how to make a branch
out of it (maybe I should merge it with the parent
commit?)


//Saper




_______________________________________________
Wikitech-l mailing list
Wikitech-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/wikitech-l

Reply via email to