@thiago: works but 2.x is generally useless while it matches master or last 2.x tag Le 31 janv. 2015 00:22, "Thiago Veronezi" <thi...@veronezi.org> a écrit :
> Did you guys take some time to consider my proposal? Oh well... Ok, I > changed the rssreader project in order to reflect what I'm trying to say. > :) > > https://github.com/tveronezi/rssreader > https://github.com/tveronezi/rssreader/branches > https://github.com/tveronezi/rssreader/releases > > With my proposal, we would have 3, and only 3, branches all the times. In > the example above it goes like this: > * master -> bleeding edge - development branch. I will try to use tomee > 2.x.x here. > * with-tomee-1.7.x -> stable branch. Only libraries and TomEE-1.7.x updates > here. > * with-tomee-2.x.x -> stable branch. Updated every time a new TomEE 2.x.x > comes out. > > We would also have tags. https://github.com/tveronezi/rssreader/tags > For now I have only one. v1.0 uses the latest released TomEE 1.7.x -> TomEE > 1.7.1 > > Just for one minute, lets imagine/map these branches as being our TomEE > branches: > * master rssreader -> master tomee > * with-tomee-1.7.x -> tomee-1.7.x > * with-tomee-2.x.x -> tomee-2.x.x > > My "with-tomee-1.7.x" branch is stable and should not have new features. > Once a new TomEE version comes out, I will simply switch to this branch and > update to the new version. Commit, push, create a new tag (v1.1) and push > the tag. I don't need to touch "master" because "master" uses TomEE > 2.0.0-SNAPSHOT. > > "with-tomee-2.x.x" is pretty much dead now because we still don't have a > TomEE 2.0.0 release. Once we have it, I will do the following... > > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git branch > * master > with-tomee-1.7.x > with-tomee-2.x.x > > ## switching from master to 'with-tomee-2.x.x' > > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git checkout > with-tomee-2.x.x > Switched to branch 'with-tomee-2.x.x' > > ## merging whatever I have in 'master' into 'with-tomee-2.x.x' > > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git merge master > Updating 8bbfdcc..64b3095 > Fast-forward > pom.xml | 26 +++++++++++++++++++++++--- > 1 file changed, 23 insertions(+), 3 deletions(-) > > ## pushing it to the remote repository so others can help me > > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git push > Total 0 (delta 0), reused 0 (delta 0) > To https://github.com/tveronezi/rssreader.git > 8bbfdcc..64b3095 with-tomee-2.x.x -> with-tomee-2.x.x > > > ## At this point "master" and "with-tomee-2.x.x" are the same. It means > that "with-tomee-2.x.x" could potentially be broken. > ## My job now is to make it stable again. Once I did the source changes, I > commit and push them back to the remote branch. > ## I also create a tag and push it to the remote repository. > ## Commiting the changes I did to make the release possible... > > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git status > # On branch with-tomee-2.x.x > # Changes not staged for commit: > # (use "git add <file>..." to update what will be committed) > # (use "git checkout -- <file>..." to discard changes in working > directory) > # > # modified: pom.xml > # modified: src/main/webapp/index.jsp > # > no changes added to commit (use "git add" and/or "git commit -a") > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git add pom.xml > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git add > src/main/webapp/index.jsp > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git commit -m "not using > extjs webjar due to bug in tomee 2.0.0" > [with-tomee-2.x.x 1562d1a] not using extjs webjar due to bug in tomee 2.0.0 > 2 files changed, 3 insertions(+), 9 deletions(-) > > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git push > Counting objects: 13, done. > Delta compression using up to 2 threads. > Compressing objects: 100% (7/7), done. > Writing objects: 100% (7/7), 683 bytes, done. > Total 7 (delta 5), reused 0 (delta 0) > To https://github.com/tveronezi/rssreader.git > 64b3095..1562d1a with-tomee-2.x.x -> with-tomee-2.x.x > > ## I call a vote. Once it passes, it's time to create a tag. > > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git tag -a v2.0-Beta -m > 'rssreader with tomee 2.0.0 SNAPSHOT' > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git push origin v2.0-Beta > Counting objects: 1, done. > Writing objects: 100% (1/1), 190 bytes, done. > Total 1 (delta 0), reused 0 (delta 0) > To https://github.com/tveronezi/rssreader.git > * [new tag] v2.0-Beta -> v2.0-Beta > > ## Now it is time to merge our changes back to master so we don't lose our > good work > > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git branch > master > with-tomee-1.7.x > * with-tomee-2.x.x > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git checkout master > Switched to branch 'master' > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git merge > with-tomee-2.x.x > Updating 64b3095..1562d1a > Fast-forward > pom.xml | 8 +------- > src/main/webapp/index.jsp | 4 ++-- > 2 files changed, 3 insertions(+), 9 deletions(-) > tveronezi@sweethome:~/dev/ws/projects/rssreader$ git push > Total 0 (delta 0), reused 0 (delta 0) > To https://github.com/tveronezi/rssreader.git > 64b3095..1562d1a master -> master > > > ## The release v2.0-Beta is now ready! > > This approach makes everyone happy: > * master points to the latest code. So, anyone cloning this project would > automatically have the bleeding edge version of it. > * we don't need to call a code freeze. Other developers can still work on > master. > * we won't need to create and delete new branches. > * there is no "review and commit" process. > * there is no cherry-picking. > * there is no history rewrite. > * we would have release branches that are always (or most of the time) > stable. > * we have tags to our releases > > > []s, > Thiago. >