
Peter Dimov wrote:
I for one did, thanks for that. But... what a pain! How do people manage to get work done at all? Isn't there a more streamlined way to do
1. Create branch 2. Work 3. Merge from trunk 4. Work 5. Merge from trunk 6. Test branch 7. Merge to trunk
without remembering repository paths and revisions? I think that SVK can do this, but last I read about it, its Windows stability was being called into question.
I believe that the "streamlined" way is what I described in http://article.gmane.org/gmane.comp.lib.boost.devel/164321 . I suspect that if there are N svn users that are at least N+1 preferred ways of doing something. I find Sebastian's method (though correct for the general case) more complicated than is normally required. For projects where there is a small number of developers for a component (often one maintainer for a lib in boost), then checking out the trunk and simply switching the directories of interest to a working branch simplifies the merge from trunk operation... it is just an "snv update" command. Granted, if you are working on a set of sources at the same time as another developer, you will need to merge your branch with the trunk changes... but I find this to happen less often than the more general case and can still be performed with only switching work areas from the trunk checkout to a branch. And so to complete my previous post with the "trivial merge operation" commands (see post for details of steps 1-4): 1. Clean trunk checkout. 2. Copy directories within svn (branch) 3. Switch working directories. 4. Work, merge from trunk, work, merge from trunk.... 5. Complete work and merge back to trunk (completing use case from previous post) cd <working trunk directory>/boost/system svn switch https://svn.boost.org/svn/boost/trunk/boost/system <https://svn.boost.org/svn/boost/branches/libs/system/caisse/boost_system> Updated to revision XX. <-- svn tells you the revision that you are now at svn merge https://svn.boost.org/svn/boost/trunk/boost/system@XX https://svn.boost.org/svn/boost/branches/libs/system/caisse/boost_system@XX . cd ../../libs/system svn switch https://svn.boost.org/svn/boost/trunk/libs/system <https://svn.boost.org/svn/boost/branches/libs/system/caisse/boost_system> Updated to revision YY. <-- svn tells you the revision that you are now at svn merge https://svn.boost.org/svn/boost/trunk/libs/system@YY https://svn.boost.org/svn/boost/branches/libs/system/caisse/libs_system@YY . svn commit -m "committing changes from caisse system branch to trunk, fixing some problem." What I like about this method is I don't have to remember versions for the merge. More work is still required if somebody else has made changes to "system". In that case, the resulting merge will contain potentially unexpected results if I hadn't been paying attention. The merge will still take care of combining the changes, but it may have been later than I wanted and now I have some more work to do before the commit. I hope this is useful is some way. Please let me know if I'm missing the point. Best Regards - Michael -- ---------------------------------- Michael Caisse Object Modeling Designs www.objectmodelingdesigns.com