问题
We are facing a problem with SVN Tagging. The figure below shows how our project is organized inside SVN. We use Tortoise SVN to do our checkout and Visual SVN as our server.

This is how our project is organized within SVN
- Branch A (the main working branch) branches off the trunk and hence resides within the Branches folder.There are different modules inside this branch
- Branch B(a specific module called RNS) branches off Branch A at a later time (This was for a new enhancement)
- Note that neither branch is the trunk.
- During development on Branch B, Some new files were introduced, only on Branch B
- No development was done on the RNS module within Branch A.
We would like to tag a version of our latest working project i.e Branch A which includes Branch B of RNS module.How can this be achieved?
This is the how we checkout our latest workspace from SVN
- We checkout Branch A version of the whole project.
- Once completed, we Right-Click RNS module and then using SVN-switch option we update it to Branch B(QUAL_RNS) version of this module.
- This constitutes our latest working setup (in Yellow).
- So every module except RNS module will belong to Branch A.
We tried doing a create tag/branch of this latest working setup from the parent folder –Folder-1(with working copy option), but this just created a tag with Branch A it in, without including Branch B of RNS module.
UPDATE: I saw this in the Tortoise SVN Help Menu
- You can also create a branch or tag without having a working copy. To do that, open the repository browser. You can there drag folders to a new location. You have to hold down the Ctrl key while you drag to create a copy, otherwise the folder gets moved, not copied.
- You can also drag a folder with the right mouse button. Once you release the mouse button you can choose from the context menu whether you want the folder to be moved or copied. Of course to create a branch or tag you must copy the folder, not move it.
So I tried this with a working copy. I created a new tag folder and dragged my entire project holding the Ctrl key to it. This seems to work, but does this take up extra space(does it create an extra copy, as it took about 5 minutes (470MB) for the copying the entire workspace) or does it create proper links to the files inside the repository?
回答1:
You must do normal or sparse working copy and make a tag with the working copy as explained in http://svnbook.red-bean.com/en/1.6/svn.branchmerge.tags.html#svn.branchmerge.tags.mkcomplex
With TortoiseSVN (or the command line) you could do a tag of the full repository (doing it from the root) but this is not recomended because it can disturb the behaviour of some tools that relay in the standard layout.
来源:https://stackoverflow.com/questions/11087650/svn-multiple-branch-tagging