Git Worflow, branch creation.
Thiago Macieira
thiago at kde.org
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) macieira.info - thiago (AT) kde.org
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: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20110519/3b072feb/attachment.sig>
More information about the kde-core-devel
mailing list