This is all fine. I still like the idea of having a master branch which is
the latest (read-only or not) even it for us it is just a copy of 5.0.x.

What I find confusing is that if I have a branch FOO-xyz, I cannot tell
what branch this is from originally without digging into git. Maybe the
branch name could include it's provenance, like "4.4.x-HTTPCORE-999" and
"5.0.0.x-HTTPCORE-999" so you can tell that each branch is a solution to
HTTPCORE-999 but for a different context.

Gary

On Wed, May 10, 2017 at 12:06 PM, Michael Osipov <micha...@apache.org>
wrote:

> Hi folks,
>
> given that Oleg finally took up the chance migrating core and client to a
> Git-based repo, we should agree how we are going to work with in
> conformance with a good Git practice to avoid chaos on master. I'd like to
> provide an example first why a common practive is so necessary to make life
> easier for us (committers) and as well as for our users reading a beatiful
> log understanding what we do and why we do it.
>
> Example: as you might know, there are about ten committers for Maven and
> we already use Git for quite some time, but did not really embrance it's
> workflow. It finally ended in having people constantly working on master
> pushing fixes for fixes and reverts for reverts (including myself),
> rendering master unreadable and unusable. We agreed for a reset on master
> (we actually skipped 3.4.0 for that reason) (INFRA did) and went through
> every single ticket wether it should be on 3.5.0 or not and why. The
> approach we have taken is that for every single ticket a branch MNG-xxxx is
> created by a dev, pushed to origin. Jenkins will automatically run all ITs.
> After that has happened you ask for a review on dev@ and leave room for
> discussion. There are oftern cases you don't see. Having an extra pair of
> eyes is helpful. This flow works very well because we now have a
> single-commit-per-issue, fully working, no fiddling.
>
> My proposal:
>
> 1. Branch off master (git checkout -b HTTPCORE-XXXX master)
> 2. Work on your issue. Create as many commits as you want
> 3. Polish it
> 4. Squash it/fix it up
> 5. Ask for a review if you are uncertain
> 6. merge back to master, but avoid merge commits which are just noise for
> a single merge (rebase your branch onto mater)
> 7. Never rewrite (rebase) history on master because you will break others.
> Infact, you can't because it is a protective branch. Only INFRA can do.
> 8. Take care of a proper commit message, these references are good:
>   * https://chris.beams.io/posts/git-commit/
>   * https://github.com/erlang/otp/wiki/Writing-good-commit-messages
> Put the title of the JIRA issue (e.g., [HTTPCORE-123] Memory leak in
> response) in the first line, followed by an explanation why you did take
> this approach. The ticket desc contains the issue, your commit message
> contains the solution.
> 9. If in doubt, ask for help and give people a couple of days to react.
> 10. When you close the issue, put a link to your commit to create a direct
> relation between issue and solution.
> 11. If this change comes for a PR on GitHub, don't steal authorship, let
> the reporter polish his work and amend the message at the end with "This
> closes #xy" and push.
>
> Something else I forgot?
>
> What do you think?
>
> Michael
>
> PS: I know this is work, but it pays off really quick
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
> For additional commands, e-mail: dev-h...@hc.apache.org
>
>


-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
Java Persistence with Hibernate, Second Edition
<https://www.amazon.com/gp/product/1617290459/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459&linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1617290459>
JUnit in Action, Second Edition
<https://www.amazon.com/gp/product/1935182021/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021&linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22>

<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182021>
Spring Batch in Action
<https://www.amazon.com/gp/product/1935182951/ref=as_li_tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951&linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B%7Blink_id%7D%7D%22%3ESpring+Batch+in+Action>
<http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a=1935182951>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to