TopGit with rebased branches, problems with publishing (was: Branch dependencies)

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

 



also sprach Bert Wesarg <bert.wesarg@xxxxxxxxxxxxxx> [2011.08.03.0125 +0200]:
> >> For my first mentioned problem, I think a new 'system' needs to be
> >> 'rebase' based, not merge based like TopGit.
> >
> > The problem with rebasing is that you cannot publish the branches.
> 
> That doesn't hold you back to publish them. But the other side need to
> know how to deal with them.
> 
> Saying that doesn't mean I know a good way to deal with them. I mostly
> end up using plumbing commands to deal with this.

Let me address this in terms of patch queue branches. Obviously, you
are talking topic branches, but wrt rebase-publish, the two are
identical. Patch queue branches are essentially quilt imports, e.g.
one-commit-one-patch, usually edited with git rebase -i (which some
people consider to be the better quilt).

The problem that led me away from patch queue branches is that
— albeit unlikely in our context (distro packaging) — it is possible
that you and I both rewrite the patch queue at the same time. The
first one to push will then have his changes overwritten by the
second push — in order to push the rebased ref,
receive.denyNonFastForwards needs to be off.

Unfortunately, I can't see a remedy to this, apart from tagging each
and every patch queue branch, but that does not solve the problem of
having to merge changes made simultaneously. It could go something
like this:

  1. ensure that noone has pushed an updated ref since you last
     fetched.

  2. if a new ref is found, download it and rebase your own patch
     queue on top of it, consolidating the changes.

  3. tag and push your new ref.

But there's a race condition in this, and so we're back to square
one.

-- 
martin | http://madduck.net/ | http://two.sentenc.es/
 
uʍop ǝpısdn sı ɹoʇıuoɯ ɹnoʎ
 
spamtraps: madduck.bogus@xxxxxxxxxxx

Attachment: digital_signature_gpg.asc
Description: Digital signature (see http://martin-krafft.net/gpg/sig-policy/999bbcc4/current)


[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]