Return-Path: X-Original-To: apmail-cassandra-dev-archive@www.apache.org Delivered-To: apmail-cassandra-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 054AA94A2 for ; Thu, 5 Jan 2012 17:25:54 +0000 (UTC) Received: (qmail 4306 invoked by uid 500); 5 Jan 2012 17:25:53 -0000 Delivered-To: apmail-cassandra-dev-archive@cassandra.apache.org Received: (qmail 4287 invoked by uid 500); 5 Jan 2012 17:25:52 -0000 Mailing-List: contact dev-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list dev@cassandra.apache.org Received: (qmail 4279 invoked by uid 99); 5 Jan 2012 17:25:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Jan 2012 17:25:52 +0000 X-ASF-Spam-Status: No, hits=-0.5 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of tedoc2000@gmail.com designates 209.85.210.172 as permitted sender) Received: from [209.85.210.172] (HELO mail-iy0-f172.google.com) (209.85.210.172) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 05 Jan 2012 17:25:46 +0000 Received: by iabz21 with SMTP id z21so1359460iab.31 for ; Thu, 05 Jan 2012 09:25:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=065jY58RRKqCA/yXlzMd+O8ka3ziIrdg5/vjKXyQiVE=; b=eDovD/P8fTA5IVzH7ljr4gvsPHFIC77lM7wXmO69wQVEXPx1Krksbkm6yGQtS6D4jk PWLUtuWjI8ScyCSXviC6FoFLSD21LWEz05CN/38+RabSM2ccazhznV1iEEsmU+3Ee4tT xvGA1wuBl6XyzQsh9hwIqCqBXMSwnYL1wF+/Q= Received: by 10.43.45.137 with SMTP id uk9mr2834997icb.52.1325784325810; Thu, 05 Jan 2012 09:25:25 -0800 (PST) Received: from hamachi.corp.rockmelt.com ([24.104.130.118]) by mx.google.com with ESMTPS id uc6sm45035594igb.4.2012.01.05.09.25.23 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 05 Jan 2012 09:25:24 -0800 (PST) Message-ID: <4F05DCFE.6080704@gmail.com> Date: Thu, 05 Jan 2012 09:25:18 -0800 From: Ted Crossman User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:8.0) Gecko/20111105 Thunderbird/8.0 MIME-Version: 1.0 To: dev@cassandra.apache.org CC: Jonathan Ellis Subject: Re: Cassandra has moved to Git References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 1/5/12 9:06 AM, Jonathan Ellis wrote: > On Thu, Jan 5, 2012 at 10:58 AM, Sylvain Lebresne wrote: >> Again, I was more talking about the only reasonable solution I saw. >> Because to be clear, if the history for some issue 666 in say trunk looks like: >> >> commit eeee: last nits from reviewer >> commit dddd: oops, typo that prevented commit >> commit cccc: some more fix found during review >> commit bbbb: refactor half of preceding patch following reviewer comments >> commit aaaa: Do something awesome - patch for #666 > Don't forget > > commit ffff: (i.e., resolve conflicts introduced in master post-branch) > >> So basically my question is how do we meld all those commits that will >> necessarily happen due to the nature of distributed reviews so that our >> main history don't look like shit? And if the answer is "we don't" then >> I'm not too fond of that solution. > +1 > One thing to consider is something like gerrit which allow code reviews before you submit to "trunk". Either way if you work on a branch separate branch form "trunk" you can publish changes for people to review. If they have a nit. You fix it *in the same commit* using git commit --amend. Step # 1: Issue fixer git checkout -b issue666 origin/trunk *hack hack* git commit -a Send e-mail to reviewers telling them to do pull. Step #2: Reviewer: git checkout -b issue666 git pull issue666 * review review* * Send e-mail to issue fixer pointing out stuff* Step #3: Issue fixer *fix pointed out stuff* git commit --amend *Send out email "I've fixed it please review again" Step #4: Reviewer git checkout issue666 # assuming they have been working on something else git reset --hard HEAD^1 # this will get you back to the state before you pulled issue666 git pull issue666 * review review* * Send e-mail to issue fixer pointing out stuff* You can do steps #3 and #4 as many times as necessary. Once everyone is happy, either one of the reviewers or the issue fixer can: git checkout trunk git rebase issue666 Also if trunk moves along during the review process the issue creator can just: git checkout issue666 git rebase trunk and then send things for review again. Gerrit makes a lot of the "send e-mail to pull" and "send e-mail pointing stuff out" a lot easier. HTH, tedo