Return-Path: X-Original-To: apmail-hadoop-common-dev-archive@www.apache.org Delivered-To: apmail-hadoop-common-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 25C1A1835A for ; Mon, 24 Aug 2015 17:59:24 +0000 (UTC) Received: (qmail 34214 invoked by uid 500); 24 Aug 2015 17:59:17 -0000 Delivered-To: apmail-hadoop-common-dev-archive@hadoop.apache.org Received: (qmail 34137 invoked by uid 500); 24 Aug 2015 17:59:17 -0000 Mailing-List: contact common-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: common-dev@hadoop.apache.org Delivered-To: mailing list common-dev@hadoop.apache.org Received: (qmail 34121 invoked by uid 99); 24 Aug 2015 17:59:17 -0000 Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Aug 2015 17:59:17 +0000 Received: from mail-qk0-f175.google.com (mail-qk0-f175.google.com [209.85.220.175]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id 6A02B1A00D5 for ; Mon, 24 Aug 2015 17:59:17 +0000 (UTC) Received: by qkch123 with SMTP id h123so73404771qkc.0 for ; Mon, 24 Aug 2015 10:59:16 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.13.223.72 with SMTP id i69mr31879103ywe.7.1440439156482; Mon, 24 Aug 2015 10:59:16 -0700 (PDT) Received: by 10.129.132.210 with HTTP; Mon, 24 Aug 2015 10:59:16 -0700 (PDT) In-Reply-To: <74B7FF2C-7E14-475E-A872-384616AFE7DB@hortonworks.com> References: <74B7FF2C-7E14-475E-A872-384616AFE7DB@hortonworks.com> Date: Mon, 24 Aug 2015 10:59:16 -0700 Message-ID: Subject: Re: [VOTE] Using rebase and merge for feature branch development From: "Colin P. McCabe" To: Hadoop Common Content-Type: text/plain; charset=UTF-8 +1 cheers, Colin On Mon, Aug 24, 2015 at 10:04 AM, Steve Loughran wrote: > +1 (binding) > >> On 21 Aug 2015, at 13:44, Andrew Wang wrote: >> >> Hi common-dev, >> >> As promised, here is an official vote thread. Let's run it for the standard >> 7 days, closing on Aug 28th at noon. Only PMC members have binding votes, >> but of course everyone's input is welcomed. >> >> If the vote passes, I'll put the text on the website somewhere as >> recommended by Steve. >> >> Previous discussion threads: >> >> http://mail-archives.apache.org/mod_mbox/hadoop-common-dev/201508.mbox/%3CCAGB5D2bPWeV2Hk%2B67%3DDamWpVfLTM6nkjb_wG3n4%3DWAN890zqfA%40mail.gmail.com%3E >> >> http://mail-archives.apache.org/mod_mbox/hadoop-common-dev/201508.mbox/%3CCAGB5D2aDXujQjwdmadVtg2-qrPAJeOgCS2_NHydv8jke8or1UA%40mail.gmail.com%3E >> >> Proposal: >> >> ==== >> >> Feature branch development can use either a merge or rebase workflow, as >> decided by contributors working on the branch. >> >> When using a rebase workflow, the feature branch is periodically rebased on >> trunk via "git rebase trunk" and force pushed. >> >> Before performing a force-push, a tag should be created of the current >> feature branch HEAD to preserve history. The tag should identify the >> feature and date of most recent commit, e.g. >> "tag_feature_HDFS-7285_2015-08-11". It can also be convenient to use a >> temporary branch to review rebase conflict resolution before force-pushing >> the main feature branch, e.g. HDFS-7285-rebase. Temporary branches should >> be deleted after they are force-pushed over the feature branch. >> >> Developers are allowed to squash and reorder commits to make rebasing >> easier. Use this judiciously. When squashing, please maintain the original >> commit messages in the squashed commit message to preserve history. >> >> When using a merge workflow, changes are periodically integrated from trunk >> to the branch via "git merge trunk". >> >> Merge conflict resolution can be reviewed by posting the diff of the merge >> commit. >> >> For both rebase and merge workflows, integration of the branch into trunk >> should happen via "git merge --no-ff". "--no-ff" is important since it >> generates a merge commit even if the branch applies cleanly on top of >> trunk. This clearly denotes the set of commits that were made on the >> branch, and makes it easier to revert the branch if necessary. >> >> "git merge --no-ff" is also the preferred way of integrating a feature >> branch to other branches, e.g. branch-2. >> >> ==== >> >> Thanks, >> Andrew >