Git Worflow, branch creation.

Thiago Macieira thiago at
Thu May 19 09:42:56 BST 2011

On Thursday, 19 de May de 2011 10:11:04 Boudewijn Rempt wrote:
> In Calligra, we sort of discussed that we might call the staging branch
> where everyone can commit "master", and that we'll try to get an automated
> system to copy commits that didn't break unittests to the release branch,
> which only the automated system can commit to. That keeps everyone in the
> loop on "master", at the expense of having a release branch that nobody
> really runs. We're not there yet, obviously

That's what we do in Qt and the result is less than stellar.

The trick is in your "copy commits" part. If you meant cherry-picking each 
commit, that means you need to do it one by one, which in turn means having a 
lot of computing power to test each and every commit. Moreover, it also stops 
dead in the water any changes that require more than one commit. Making atomic 
commits, that do each their changes is preferable, but this may introduce 
broken states in the intermediary steps. That is, two commits together may not 
break anything, but each separately would and your script would discard both.

If you meant merging everything periodically, that's how we do it in Qt. It 
works, as long as someone is always fixing the problems. What happens to us is 
that some of the "staging areas" end up broken due to a commit that does break 
a unit test. Then every single commit there, past and new, is prevented from 
being merged into the official "master" branch because there's one test failing.

The new solution we're working on, to be deployed with Open Governance, is to 
have the CI system pull the commits directly from the code review tool. It 
will take each and every approved commit / commit-set and test it. If it 
works, that's great, it's integrated. If it fails, it's rejected with no side-
effects: the next approved commit-set will be taken instead.

Thiago Macieira - thiago (AT) - thiago (AT)
  Senior Product Manager - Nokia, Qt Development Frameworks
      PGP/GPG: 0x6EF45358; fingerprint:
      E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <>

More information about the kde-core-devel mailing list