+1000 on rebase before pushing from feature branch 

-- Clebert Suconic typing on the iPhone. 

> On Jun 11, 2015, at 02:08, Bruce Snyder <bruce.sny...@gmail.com> wrote:
> 
> Any branch can be deleted, see 'git branch -d' and 'git branch -D'. Also,
> remote branches (like one pushed to the origin) can be removed by doing a
> 'git push origin :branch_name'.
> 
> My only question about the use of git feature branches (which I agree
> should definitely be used) is the workflow used to get the commits on a
> feature branch back to the master, especially for long-lived branches that
> are pushed to the origin like Dan is suggesting. Several experiences have
> taught me that allowing the default git merging strategy (i.e.,
> fast-forward merges) is a very bad idea because it co-mingles all commits
> when a feature branch is merged back to the master branch. In the event
> that bad commits need to be plucked out after the merge takes place,
> fast-forward merges make this task nearly impossible and can create a very
> big mess. I've learned through experience that it is always a better idea
> to rebase the master onto the feature branch, resolve all conflicts in
> isolation on that feature branch and only then do a non-fast-forward merge
> of the feature branch to the master branch. Using non-fast-forward merging
> keeps the existence of the feature branch intact (even after it has been
> deleted and this is key). Use of non-fast-forward merges makes plucking out
> commits from a feature branch much, much easier.
> 
> Bruce
> 
>> On Tue, Jun 9, 2015 at 9:34 PM, Daniel Kulp <dk...@apache.org> wrote:
>> 
>> 
>>> On Jun 9, 2015, at 9:56 PM, Clebert <clebert.suco...@gmail.com> wrote:
>>> 
>>> +1. Although Only question I have:
>>> 
>>> With git it's not really needed to create a branch in the main repo for
>> temporary branches.
>> 
>> Depends on the purpose…..  If I was going to work on a relatively large
>> idea/change and want to collaborate with another committer, a branch at
>> Apache makes a lot of sense.   For example, I’m thinking about creating one
>> to work on the CXF change.  I can keep working on it, all commits would
>> still go to the commits@ list so everyone can see what’s going on.
>> Others could help out, etc…  Once “done”, it could be merged to master and
>> the branch removed.
>> 
>>> But If someone did it thought.  Is it easy to remove a branch with
>> Apache git?  I have the impression that you need Infra guys to delete
>> branches?
>>> If only infra structure guys can delete branches I would not encourage
>> branches on the main repo.
>> 
>> The only branch you cannot remove is master.   Anything else is just like
>> normal.
>> 
>> Dan
>> 
>> 
>>> 
>>> -- Clebert Suconic typing on the iPhone.
>>> 
>>>> On Jun 9, 2015, at 20:22, Daniel Kulp <dk...@apache.org> wrote:
>>>> 
>>>> I guess if it was up to me to actually write a formal doc describing
>> the process it would go something like:
>>>> 
>>>> 
>>>> ———————
>>>> 
>>>> ActiveMQ uses a Commit-Then-Review process for getting changes
>> contributed to the development branches.   In general, this means the
>> ActiveMQ committers are free to directly commit their own work to master
>> and push those changes to the canonical repository at Apache.   However,
>> the expectation is that the developer has made a good effort to test their
>> changes and is reasonably confident that the changes that are being
>> committed will not “break the build.”
>>>> 
>>>> What does it mean to be reasonably confident?  That may depend on the
>> developer.  If the developer has run the same maven commands that the CI
>> builds are running, they can likely be reasonably confident.   However, if
>> the changes are significant, touches a wide area of code, or even if the
>> developer just wants a second opinion, they are encouraged to engage other
>> members of the community to obtain an additional review prior to commit.
>> This can easily be done via a pull request on github, a patch file
>> attached to an email or JIRA, committed to a branch in the Apache git repo,
>> etc…  There are a variety of options open to them.    Having additional
>> eyes looking at significant changes prior to committing to the main
>> development branches is definitely encouraged if it helps obtain the
>> “reasonable confidence” that the build is not broken and code quality has
>> not decreased.  We also have automatic builds setup to test github pull
>> requests in advance to help establish a good level of confidence in the
>> build.
>>>> 
>>>> However, “things happen”.   We’re all human.   In the case where the
>> build does break, the expectation is that the developer will make a best
>> effort to get the builds fixed in a reasonable amount of time.    If it
>> cannot be fixed in a reasonable amount of time, the commit can be reverted
>> and re-reviewed.
>>>> 
>>>> ———————
>>>> 
>>>> Everyone:  does that about cover it?    Did I miss anything?    The
>> github pull requests and gui tools are definitely a good tool chain in
>> certain cases and I would still encourage those folks that find value in
>> them to continue using them.   However, they cannot be “required”.
>>>> 
>>>> 
>>>> Dan
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>> 
>>>>>> On Jun 9, 2015, at 7:57 PM, Clebert Suconic <
>> clebert.suco...@gmail.com> wrote:
>>>>>> 
>>>>>> +1 to stay with the existing CTR practice that is well established in
>> the
>>>>>> ActiveMQ community. That's why committership is granted. It's a level
>> of
>>>>>> trust and confidence that you don't make low hanging fruit errors.
>>>>> 
>>>>> I actually screw up all the time ;) But I rather make eventual
>>>>> mistakes than not do something :)
>>>>> 
>>>>> Anyways... lets keep the pull requests as a tool. For instance I just
>>>>> prevented an issue because of a PR Build
>>>>> 
>>>>> https://builds.apache.org/job/ActiveMQ-Artemis-PR-Build/418/
>>>>> https://github.com/apache/activemq-artemis/pull/22
>>>>> 
>>>>> But I don't want to talk about the issue itself on this Thread... This
>>>>> is a meta discussion.. I will talk about the issue itself on another
>>>>> post I'm about to make
>>>> 
>>>> --
>>>> Daniel Kulp
>>>> dk...@apache.org - http://dankulp.com/blog
>>>> Talend Community Coder - http://coders.talend.com
>> 
>> --
>> Daniel Kulp
>> dk...@apache.org - http://dankulp.com/blog
>> Talend Community Coder - http://coders.talend.com
> 
> 
> -- 
> perl -e 'print
> unpack("u30","D0G)U8V4\@4VYY9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*" );'
> 
> ActiveMQ in Action: http://bit.ly/2je6cQ
> Blog: http://bruceblog.org/
> Twitter: http://twitter.com/brucesnyder

Reply via email to