On Sat, February 10, 2007 7:53 pm, Tracy R Reed wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Lan Barnes wrote: >> Also, the lack of true tags/labels is a chronic gripe for me with svn. >> The >> developers insist that their hokey use of the copy facility to make >> instances that, they say, can stand as labeled versions, is all anyone >> needs. But this is the exact same rhetoric we heard from the cvs >> developers when the svn people were criticising their refusal to address >> certain cvs deficiencies. > > What do you see as the real difference between tags/labels and a copy?
As always, the underlying data structure tells the story. In rcs/PVCS, version labels were recorded in the archive file for a single module. To do a pull by label, all the possible archive files had to be opened and read for the tag. Very s-l-o-w and innefficient. Subversion does "tags" by suggesting that you make a copy using svn copy and name it for whatever you want to remember. This is not a tag. It is a snapshot. You could as well have used a floppy or a CD to make the copy of the source code. Granted, svn copies are lazy copies, so you record pointers to files rather than files (unless they are unique). But you still have no way of determining if tag1 and tag2 are the same code set except pulling both and doing windiff. Perforce tags, OTOH, are done properly. In the p4 db, you have a table for tag names with all the data on a tag (including a remark on what the tag means, an owner, whether it's locked, etc); and you have a break out table that records the exact file instances in each tag. It has the fastest possible response time to tag commands as it goes almost instantly to the exact file set and none others; it has the most flexibility, as tag sets may be truely arbitrary; and most important, it allows such operations as tag-on-tag, tag comparisons in the data base, and incremental tagging. svn tags simply can't do those things, and they're damn useful. Note that svn is data base in its architecture, even using Berkeley DB just as p4 does. But the svn developers are unwilling to but the work in (which is understandable) and are rationalizing that there is nothing lost by not having true tags/labels (which is delusional). And the svn community has made it clear that they miss tags. Developers on a project can do what what they want, but when they get to kidding themselves, it's sad to see. -- Lan Barnes SCM Analyst Linux Guy Tcl/Tk Enthusiast Biodiesel Brewer -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list
