Thanks for the clarification Andrew. So is the proposal on the table squashing commits (on the feature branch) when we rebase the feature branch with the latest from trunk? How would the process work? A simple schematic example might be helpful in understanding the proposal. If the feature branch was pushed to the remote repo, then squashing commits (i.e. rewriting commits) could become tricky, right? Thanks in advance.
On Mon, Aug 17, 2015 at 11:33 AM, Andrew Wang <andrew.w...@cloudera.com> wrote: > @Sangjin, > > I believe this is covered by the [VOTE] I linked to above, key excerpt > being: > > 3. Force-push on feature-branches is allowed. Before pulling in a > feature, the feature-branch should be rebased on latest trunk and the > changes applied to trunk through "git rebase --onto" or "git cherry-pick > <commit-range>". > > This specifies that the last uprev final integration of the branch > into trunk happen with rebase. It doesn't say anything about the > periodic uprev's, but it'd be very strange to merge periodically and > then rebase once at the end. So I take it to mean doing periodic > uprevs with rebase too. > > > On Mon, Aug 17, 2015 at 11:23 AM, Sangjin Lee <sj...@apache.org> wrote: > > > Just to be clear, are we discussing the process of uprev'ing the feature > > development branch with the latest from the trunk from time to time, or > > making the final merge of the feature branch onto the trunk? > > > > On Mon, Aug 17, 2015 at 10:21 AM, Steve Loughran <ste...@hortonworks.com > > > > wrote: > > > > > I haven't done a bit piece of work in the ASF code repo since the > > > migration to git; though I have done it in the svn era. > > > > > > > > > Currently with private git repos > > > -anyone gets SCM control of their source > > > -you can commit for your own reasons (about to make a change, want a > > > private jenkins run, ...) and gain from having many small checkins. > More > > > succinctly: if you aren't checking in your work 2+ times a day —why > not? > > > -rebasing a painful necessity on personal, private branches to keep the > > > final patch to hadoop git a single diff > > > > > > With the private git process that's the defacto standard, we lose > history > > > anyway. I know what I've done and somewhere there's a tag in my own > > github > > > repo of my work to create a JIRA. But we don't always need that entire > > > history of "trying to debug kerberos", "typo in exception", and other > > stuff > > > that accrues during the work. > > > > > > I think therefore that I'm in favour of big squash commits. What we > could > > > do is extend that with a policy of > > > > > > > > > 1. tag the final commit used to make the patch, something like > > > tag_HADOOP-8192. The tag ensures that the history isn't gc'd > > > 2. Delete the branch (keeps the #of branches down) > > > 3. In the JIRA, include the name of the tag and the git commit > number > > > in the comments. Someone curious can rebuild that history > > > > > > > > >