I am relatively new to Subversion, hoping to get some ideas from more experienced people. We take the approach to carry out the bulk of development work (new features and bug fixes) on the trunk and merge bug fixes in release branches as needed. With this approach, developers will not code directly against release branches at all, only merging with them.
My first thought was that perhaps the developers do not need a working copy of the release branches at all, and perhaps the changes in trunk can be merged into branches directly in the repository. But I quickly realized that not how Subversion works - you need a working copy to unite.
So, my next thought was that developers can still only store one copy of the code base locally, point it to the connecting line, and transition svn to the release branch when they need to merge. A couple of potential issues that I might see:
- It may be too easy to forget to switch back to the trunk after the merger.
- The developer may have had uncommitted changes in his working copy (something that they worked on for a future version before they interrupted to fix errors) that would still be present when they switched to svn, and accidentally merging these changes into release branches.
If I put together several scripts for this process, I could prevent # 1 from being a problem, but No. 2 concerns me a little more. I wonder if this is the gap for this approach.
In short, my question is: when merging bug fixes from the trunk to the release branch, where the developer does not yet have a working copy of the release branch, is it considered best practice for the developer to switch svn to merge, or check the working copy of the release branch in elsewhere locally? Thanks in advance!
source share