Return-Path: X-Original-To: apmail-couchdb-dev-archive@www.apache.org Delivered-To: apmail-couchdb-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 CEB7D17C91 for ; Mon, 23 Mar 2015 08:28:45 +0000 (UTC) Received: (qmail 22302 invoked by uid 500); 23 Mar 2015 08:28:45 -0000 Delivered-To: apmail-couchdb-dev-archive@couchdb.apache.org Received: (qmail 22240 invoked by uid 500); 23 Mar 2015 08:28:45 -0000 Mailing-List: contact dev-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list dev@couchdb.apache.org Received: (qmail 22229 invoked by uid 99); 23 Mar 2015 08:28:45 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 23 Mar 2015 08:28:45 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of gs@redcometlabs.com designates 74.125.82.54 as permitted sender) Received: from [74.125.82.54] (HELO mail-wg0-f54.google.com) (74.125.82.54) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 23 Mar 2015 08:28:40 +0000 Received: by wgra20 with SMTP id a20so139575014wgr.3 for ; Mon, 23 Mar 2015 01:27:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:content-type:message-id:mime-version :subject:date:references:to:in-reply-to; bh=rrx0KW92rF2VeGudBFeiQwg9f8V8N9d19iKcr5Ejfk0=; b=LXwJ6szlThsebehSRykzl0NVnrgHhYoq0waeNeHo4Chq6bkNeH4s5Upl9S5J5ywDzL SMBMAbzDZOOh/cxNYm9oGv3BSQkT7iJyZ5mDer3zz5RjqQ3TmtUN0kRsV2OoAcST8byP 2or3yntRyuak4rVHMoI2lQTV8kOA5yItZM0jkI51uP3MwGeZ7bLX6SM2S4xC7IrWULSl 1FAxs1ZoweEy7kQuCOTK5nOu+FRbVHfWHRAHb2iSrdazoM1aEpYpwzJxnr6J7BdSFAOY tV06fHs722n+8KHpxpIvUWwg4JHBCxHhqkoovU9eflPyd93sfUXEjP3Z8QWjxVfxCWBz HlvQ== X-Gm-Message-State: ALoCoQlGPA60zDPkJBhCakPoU5dJKT1VkfqOTp5TgSey2ZXml4IpymNuXVYpzDgV/BCIhrk4BvXj X-Received: by 10.180.105.136 with SMTP id gm8mr17622329wib.13.1427099253588; Mon, 23 Mar 2015 01:27:33 -0700 (PDT) Received: from [192.168.8.100] (105-208-143-194.access.mtnbusiness.co.za. [105.208.143.194]) by mx.google.com with ESMTPSA id j7sm8229842wix.4.2015.03.23.01.27.31 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Mon, 23 Mar 2015 01:27:32 -0700 (PDT) From: Garren Smith Content-Type: multipart/alternative; boundary="Apple-Mail=_A8822528-782F-4C3B-AA33-66D8094C22D9" Message-Id: Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\)) Subject: Re: [DISCUSSION] GitHub PRs merging policy Date: Mon, 23 Mar 2015 10:27:27 +0200 References: To: dev@couchdb.apache.org In-Reply-To: X-Mailer: Apple Mail (2.2070.6) X-Virus-Checked: Checked by ClamAV on apache.org --Apple-Mail=_A8822528-782F-4C3B-AA33-66D8094C22D9 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Here is how the Fauxton team merge our commits. We probably don=E2=80=99t = follow the most scientific method but it seems to work well enough. 1) Add ability to remote fetch PR=E2=80=99s = https://gist.github.com/piscisaureus/3342247 = instead of having to add = the contributor each time 2) git fetch (fetches all PR=E2=80=99s)=20 3) git merge pr/111 4) git push Using that gist is a real time saver. I think by default git merge is = using git fast forward, I=E2=80=99m not sure.=20 I will now wait for Alexander=E2=80=99s email that tells me how wrong we = are :)=20 Cheers Garren > On 22 Mar 2015, at 10:02 PM, Alexander Shorin = wrote: >=20 > Hi devs, >=20 > I'm deeply concerned about the way how we should handle pull requests > that comes on GitHub. Currently, I see the following ways to process > them: >=20 > 1) Explicit merge aka GitHub workflow > git remote add contributor https://github.com/... > git fetch contributor > git merge --no-ff contributor/pr-branch >=20 > Example: https://github.com/apache/couchdb-fabric/commit/a4d985252 > Pros: > - Automatically closes PR on GitHub > - Strong reference to origin of incoming changes > - Responsible committer name is clearly defined in history > Cons: > - That's also the way to pollute commit history with useless merge > commits. No, they are useful, but not for a single commit changes. >=20 > 2) Fast forward merge. Same as 1) but without merge commit. >=20 > Example: = https://github.com/apache/couchdb-documentation/commit/27cc733 > Pros: > - Clean history > - Automatically closes PR on GitHub > Cons: > - The related PR thread may contain some important information about > these changes and the backward reference becomes lost outside of > GitHub. > - There is no information about who did actually merged those changes >=20 > 3) Apply patches manually > curl -O https://github.com/apache/couchdb-*/pulls/42.patch > Edit the patch to put magic "This closes #42" into commit message > git am --signoff < 42.patch >=20 > Example: https://github.com/apache/couchdb-fabric/commit/adaf5c23 > Pros: > - Clean history > - Responsible committer name is clearly defined in history > - Automatically closes PR on GitHub > Cons: > - Need to put PR number into commit message to make PR automagically > closed on merge > - Not suitable for large series of changes > - Literally closes PR on GitHub instead of merge (some people > concerned about that) >=20 > I was used the latter one. Recently I'd tried the other ways. I'm not > happy with the results and I'm still not sure which way to use for > CouchDB. >=20 > Personally, I tend to follow the first way when PR contains multiple > commits and the third when it's a question of some single change. But > would like to discuss the this workflow and make sure that mine is > fine for the other team. >=20 > One day we'd tried to write our Git workflow, but it struggled because > of some details. Let's return to that idea and make it iterative, case > by case. Handling pull requests is a good topic for the start I think. >=20 > Please share your though on this. Thanks! >=20 > -- > ,,,^..^,,, --Apple-Mail=_A8822528-782F-4C3B-AA33-66D8094C22D9--