[Tfug] Version Control

John Gruenenfelder jetpackjohn at gmail.com
Mon Mar 25 22:15:09 MST 2013


On Mon, Mar 25, 2013 at 6:02 PM, Bexley Hall <bexley401 at yahoo.com> wrote:
> Hi,
>
> I'm reconsidering whether or not to continue with CVS
> or switch to some other CM/VC toolkit.  Chief among
> my requirements is the ability to support *any* file
> type (contents) without preconfiguring the system
> to understand a particular type of file (acknowledging
> that this can make diffs ineffective...)
>
> E.g., I should be able to walk up to *any* portion
> of a file hierarchy and "add/checkin" the entire
> hierarchy without knowing what lies below:  "source
> code" (in a variety of languages), photos, publications
> (in proprietary formats), executables, etc.

Don,

I have been using Subversion for quite some time now, ever since I
ditched CVS.  SVN is, by and large, very similar to CVS, of course,
but there are a number of architectural changes/decisions that were
made early on to remove some deficiencies of CVS.  For example, with
Subversion you can now rename and move files without needing to
remove/re-add them to the repository (which will destroy existing
history/versions as a side-effect).

There seems to be some debate online as to how true a *replacement*
SVN is for CVS instead of just an alternative, but from my usage I
haven't found any reasons to go back.

Subversion nicely gets around the file variety issues by treating
everything as binary unless it knows that it is a text file.  Much of
the time it will also correctly detect the file MIME types, which I
suppose is more useful if you are using a web front-end of some type.
Also, Subversion defaults to *not* enabling keyword expansion, unlike
CVS.  This is important since it greatly reduces the chances of your
tool corrupting your files.  CVS defaulted to having this on, so if
you were unlucky enough to have a binary file with "$Id$" in it...
oops.  I use this feature so I made a shell alias to easily enable
keyword expansion on specified files.  Since it can handle binary
files, Subversion is also much better at storing these diffs.

As far as I know, Subversion should meet all of your other
requirements, too, such as space efficiency, available GUIs, ability
to run the server on a variety of hosts, and so forth.  Glen mentioned
in his reply that SVN does not meet your performance requirements...
I'm not sure I can really comment about that.  I've never had any
issues, but I can pretty confident that none of my repositories are of
a size that anybody would consider large.  Maybe it becomes much
slower with a large repository?

I should mention, though, that I've still not got around to learning
what I should about Git usage and features, despite how common it has
become.  That's a big reason I stick with Subversion, actually, but it
works for me.


-- 
--John Gruenenfelder    Systems Manager, MKS Imaging Technology, LLC.
Try Weasel Reader for Palm OS  --  http://weaselreader.org
"This is the most fun I've had without being drenched in the blood
of my enemies!"
        --Sam of Sam & Max




More information about the tfug mailing list