On Thursday 31 July 2008 6:32:25 pm Sam Boyer wrote:
Yes this is my major concern with SVN, the total lack of tagging and branching support.
Gordon.
This just isn't accurate. Several posts in this discussion - not even all of them being mine - have indirectly or directly explained that svn does have branching/tagging.
Sam
I think this is a terminology difference, frankly. In CVS, branching and tagging is an explicit, discrete operation named tag (or tag -b, which is just dumb). You create a tag/branch by saying "Hey, CVS, make a branch from here and call it X". CVS then does some magic copying and shuffling behind the scenes. In SVN, there is no explicit concept of branching and tagging. The way SVN works internally, you can copy files within the repository dirt cheap. It creates essentially the svn equivalent of a hard link in the file system. (It's not implemented that way, but it's conceptually similar.) Because copying is always an O(1) operation that takes virtually no extra disk space, you "branch" by copying one working copy to a new location within the repository. You can then start committing to that new location and svn tracks the changes internally as needed. The only difference between a branch and a tag is a convention to not commit to a tag; CVS would enforce that by its very nature, whereas in CVS there is no inherent difference between a branch, a tag, and just copying files around. Whether SVN's mechanism is more natural and obvious (you can see all your branches at once, very useful when different people use different branching structures for their modules) or more geeky-obscure (I want to "branch" so why do I use the copy command? What is this, the "Start" button to Shutdown?) is a matter of opinion; I've seen both expressed, both in this thread and elsewhere. -- Larry Garfield larry@garfieldtech.com