Return-Path: X-Original-To: apmail-cloudstack-dev-archive@www.apache.org Delivered-To: apmail-cloudstack-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3B6D411C3E for ; Thu, 24 Jul 2014 09:23:08 +0000 (UTC) Received: (qmail 58482 invoked by uid 500); 24 Jul 2014 09:23:07 -0000 Delivered-To: apmail-cloudstack-dev-archive@cloudstack.apache.org Received: (qmail 58439 invoked by uid 500); 24 Jul 2014 09:23:07 -0000 Mailing-List: contact dev-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list dev@cloudstack.apache.org Received: (qmail 58428 invoked by uid 99); 24 Jul 2014 09:23:07 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Jul 2014 09:23:07 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=5.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of LSimons@schubergphilis.com designates 195.66.90.57 as permitted sender) Received: from [195.66.90.57] (HELO sbprmx2.schubergphilis.com) (195.66.90.57) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 24 Jul 2014 09:22:59 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by sbprmx2.schubergphilis.com (Postfix) with ESMTP id 365AE128DD for ; Thu, 24 Jul 2014 11:22:35 +0200 (MEST) X-Virus-Scanned: amavisd-new at schubergphilis.com Received: from sbprmx2.schubergphilis.com ([127.0.0.1]) by localhost (sbprmx2.schubergphilis.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id rd-zSVlK4F32 for ; Thu, 24 Jul 2014 11:22:35 +0200 (MEST) Received: from SBPOTMG401.sbp.lan (edge.schubergphilis.com [195.66.90.11]) (using TLSv1 with cipher RC4-SHA (128/128 bits)) (No client certificate requested) by sbprmx2.schubergphilis.com (Postfix) with ESMTP id 2424D1280D for ; Thu, 24 Jul 2014 11:22:35 +0200 (MEST) Received: from SBPOMF402.sbp.lan (10.71.2.133) by SBPOTMG401.sbp.lan (10.71.3.110) with Microsoft SMTP Server (TLS) id 14.3.195.1; Thu, 24 Jul 2014 11:22:34 +0200 Received: from SBPOMB401.sbp.lan ([fe80::2163:a5b:1dc1:9f]) by SBPOMF402.sbp.lan ([fe80::2c87:4702:f9df:837e%16]) with mapi id 14.03.0195.001; Thu, 24 Jul 2014 11:22:35 +0200 From: Leo Simons To: "dev@cloudstack.apache.org" Subject: Re: [DISCUSS][PROPOSAL] git workflow Thread-Topic: [DISCUSS][PROPOSAL] git workflow Thread-Index: AQHPlK/+YZnlH+8TeUWaa37/4MgtA5utc4oAgABUkYCAAAJyAIAAAvWAgAADloCAAAhQAIAAAm+AgAACqQCAACY0AIAADVeAgACSOICAACADgIAABNYAgAAhrICAAAGZAIAAClQA Date: Thu, 24 Jul 2014 09:22:34 +0000 Message-ID: References: <85B56B1AEDD2674A82DEC8B61E12182930D691@AMSPEX01CL01.citrite.net> <3A3E69CA-D21B-4F3E-835D-EAD91765A7CC@citrix.com> <02D48BBC-A209-418D-9263-BDEF88E77A10@gmail.com> <18633580-1245-430C-A4DF-5853177F9C97@gmail.com> <080A05D2-DD56-4737-A5C7-48DD11D0E30F@gmail.com> <6A7BE8FE-0225-4C2B-B33C-F5D93E9CADA6@citrix.com> <056F8BBA-DB46-4351-A9E1-666A90A52F35@citrix.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.71.96.83] Content-Type: text/plain; charset="Windows-1252" Content-ID: <5C8F1B727E93F04FAE8AEA80F0EAE596@schubergphilis.com> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Virus-Checked: Checked by ClamAV on apache.org On Jul 24, 2014, at 10:45 AM, Daan Hoogland wrote= : > Any advice on our procedure from this, Leo? Yes, to follow all the git-flow defaults [1]. * goal is for master to become stable * new develop which starts from master * create with `git flow init` * =91abandon=92 4.4 / 4.4-forward * anything in there which is not currently in master gets cherry-picked into develop * accordingly, plan is no 4.4.1 * if 4.4.1 becomes really necessary, create it by cherry-picking from develop * keep 4.3 to produce 4.3.1 then abandon it, too It is important to realize that a git-flow release/4.5 is _not_ the same as= an old-style 4.5-forward; a lot more discipline is required. 4.4-forward contains a lot of things which are not purely bugfixes. 4.4-for= ward has additional tests, lots of changes to test suites, things that shou= ld go in 4.4.1 but not 4.4.0, half-merged features that were pulled from 4.= 4 but remain in 4.4-forward, bugfixes that include refactoring, etc etc. In= a git-flow model, those things would go onto feature/ and/or support/ bran= ches, and from there to the develop branch, and definitiely _never_ onto a = release branch. It was very hard to get 4.4 stable by cherry-picking from 4= .4-forward; the discipline suggested by git-flow is _exactly_ to avoid that= difficulty. Note git-flow defaults also include: * feature branches are called feature/feature-thing (don=92t put your name in there, its meant to be descriptive!) * release branches are called release/{version} (not RELEASE-{version}) * hotfixes are called hotfix/{version}-name and are based on & merge to master (not usually to a release branch, release branches are not hot, hotfixes are patches to previous releases, i.e. 4.5.1, 4.5.2, 4.5.3 will be hotfixes) * everyone can commit on release branches, everyone can merge to develop (generally you don=92t need much merging to release branches since the only thing you commit there are bugfixes, you merge _from_ the release branch _to_ the develop branch), merging is _not_ a release manager's job (the release manager might review or approve bugfixes, but its the committer that merges) * no cherry-picking! cheers, Leo [1] unfortunately, the reason I did this analysis work yesterday was to try= and find a way to start from 4.4 and go forward from there, first merging = in 4.4-forward and then master, but I don=92t see that happening > On Thu, Jul 24, 2014 at 10:39 AM, Leo Simons = wrote: >> branch two diff size big diff chunks >> branch one >> 4.3 4.4 11MB hyperv,netscaler,server,engine >> 4.4 4.4-forward 2MB tests,marvin >> 4.4-forward master 6MB xenapi,xen,xenserver,storage >> 4.4 master 8MB xenapi,tests,marvin,xen,xenserver >> (See below how I got the numbers.) >>=20 >> Starting git-flow from 4.4 or 4.4-forward and then merging things in fro= m master means processing hundreds of thousands of lines of diff. Of those = lines, many many thousands of lines will probably not auto-merge due to the= cherry-pick approach. A rebase between any of these branches is not feasib= le; git cannot un-pick what happened so it cannot offer much assistance.