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