开发者

Subversion Branching / Switching

Currently I always worked with GIT and was quite satisfied.

Due to some project restrictions we took over an already start开发者_运维技巧ed project which recently hit the 1.0 production version.

Now I would like to branch the stable version 1.0 and we keep on developing in the trunk.

Now my structure looks like:

branche
--app-1.0

trunk
--app

Now two scenarios: I keep on developing in the trunk. I fix a bug which also hits version 1.0. in one Java class. It's only 1 line of code that changes. How do I commit this to app-1.0 without overriding the "old" class except with this one single line?

2nd scenario: Someone asks me to check if there's a bug. I switch to app-1.0, find the bug, fix it, I find by chance a second bug, fix it too, commit it to app-1.0. How do I commit this to the trunk?

Is in both cases the merge command correct?

What are best practices?

On my GIT I alway had it the other way round: I created a branch app-1.0 app-2.0 where I develop and when I found it to be stable I merged it to the trunk which was always a representation to my stable version.

I hope you guys can help me :-)


For both scenarios : you merge!

From SVN Book:

Merge a branch back into the trunk (assuming that you have a working copy of the trunk, and that the branch was created in revision 250):

$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branch
U  myproj/tiny.txt
U  myproj/thhgttg.txt
U  myproj/win.txt
U  myproj/flo.txt

If you branched at revision 23, and you want to merge changes on trunk into your branch, you could do this from inside the working copy of your branch:

$ svn merge -r 23:30 file:///tmp/repos/trunk/vendors
U  myproj/thhgttg.txt

http://svnbook.red-bean.com/en/1.0/re16.html


You can easily merge single revision from trunk to branch or from branch to trunk. Merge is the right command.

If you have branch checked out, you can do:

svn merge -r <from_revision>:<to_revision> http://host/path/to/trunk

or

svn merge -c <revision> http://host/path/to/trunk

(-c is equivalent to -r <revision-1>:<revision>).

In SVN, merge works by getting difference between two revisions, and applying them to your working directory. After merge, you have to commit your changes. If you want to merge bugfix from branch to trunk, go to your trunk working directory, and merge from branch URL.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜