subversion

Tom Metro blu at vl.com
Sat Aug 19 15:43:05 EDT 2006


Kent Borg wrote:
> I like Subversion, but I have one serious gripe: it is too general
> purpose.  It will do everything you need for source code control, but
> it doesn't have the *specific* facilities you need. 

That's true. Subversion is more like a file system with version control 
features, rather than a software revision control system that imposes a 
specific workflow.

But the same can be said for other tools, including CVS. When I managed 
a project with CVS I found I needed to "wrap" it with my own conventions 
and standards for when to tag, how to name tags, as well as the process 
for branching and merging.

CVS might have been slightly more developer centric, but it still 
requires that you either enforce your own workflow rules or layer tools 
on top of it.

Other version control tools, like Aegis, operate at a higher level and 
impose a specific workflow, like mandating that your code pass unit 
tests before it can be committed to the trunk.


> It is great to have a general purpose tool, but sometimes it is nice
> to have a specialized tool (for, say, source code control), that leads
> you in the right direction.  A tool that anticipates the N things you
> are likely to want to do, and provides a way to do those N things, is
> very nice to have.

Agreed. So what you want to do is find such a tool that layers on top of 
Subversion, or write your own.


> Want to tag a version?  There is no "tag" command. ... To tag
> something you make a copy...
> 
> So what is the difference between a tag and a branch and a copy?
> Nothing, not as far as Subversion is concerned, it is all a matter of
> how you use the two different copies.  Want to start making changes to
> your tag?  Fine.  Subversion will let you...

Tagging is somewhat superfluous in Subversion, because unlike with CVS, 
all files in a repository share the same version number at any given 
commit point. You could implement immutable CVS-like tags in Subversion 
by externally keeping a log of version numbers and their symbolic name. 
I haven't looked into this, but I'm not sure why tagging wasn't 
implemented through some convention of setting attributes on the 
repository, given that Subversion has that ability.


> The day a less elegant (i.e., more focused) source control tool comes
> out that has the main features of Subversion I will be badly tempted
> to change.  If it also supports distributed repositories (which
> Subversion does not), then I am probably wanting to move on fast.
...
> ...I noticed someone on the Subversion mailing list mentioning SVK.
> Ah, that might be what I want.
> 
> Anyone have experience with SVK?

A co-worker uses it and likes it.

Here is a review (mentioned in this week's Debian Weekly News):

http://changelog.complete.org/posts/528-Whose-Distributed-VCS-Is-The-Most-Distributed.html

of several distributed version control systems. The author included SVN 
in the comparison, even though it isn't designed to be a distributed 
VCS, and as expected it didn't fare so well. The comments on the review 
mentioned SVK (http://svk.elixus.org/), which adds the distributed 
features to SVN.

  -Tom

-- 
Tom Metro
Venture Logic, Newton, MA, USA
"Enterprise solutions through open source."
Professional Profile: http://tmetro.venturelogic.com/

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.




More information about the Discuss mailing list