[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Subversion Tools

From: Nathan Kidd <nathan_at_hummingbird.com>
Date: 2004-08-05 18:47:04 CEST

Ulrich Eckhardt wrote:

> Francesco Nesci wrote:
>
>>3) A windows program to copy the VSS database to SVN and preserver the
>>history.
>
>
> In case you are willing to drop the 'windows' (what should that mean anyways?)
> from above requirement, http://vss2svn.tigris.org might be a way, they also
> have their own mailinglist where you can ask questions.

Perhaps I've misunderstood what was meant by "drop windows", but vss2svn
(.pl) is *supposed* to run on windows -- it needs to call ss.exe.

>>What problems did you run into?

Francesco, these are some things I've found. If anyone has
ideas/solutions please do let me know!

1. Budget enough time to convert the database. Not a problem per se, but
keep in mind that vss2svn takes a *long* time to run. E.g. for me, a
couple days on a 600MB repo with ~30K files and 2 years of commit
history (~ 8,000 commits). (Running on a P4 3.2, 1GB, SCSI 320 disks and
a local svn repository via apache).

2. If you use sharing you'll have to make changes. With svn you can't
share files, only directories (and these are not 'shared' like vss where
it treats all shared locations as equal, it's more like "do a get (not
checkout) of these other files when I checkout this directory"). This is
probably a good thing in general -- it forces you to clean up your
processes (e.g. make a lib) -- but it will take some work.

3. You may need to re-organize your tree. VSS (obviously) doesn't have
atomic commits, so related files can get scattered into directory trees
far from each other and nobody cares. This is a problem if you want to
use atomic commits to group related changes together (as you should),
because in svn you have to do the commit from the directory that is a
parent to all the related files if you want to commit them at the same
time. E.g. if you have some layout like:

/
|-includes/myproject1 (10K)
| /myproject2 (2MB)
| ...
|
|-source/myproject1 (1MB)
         /myproject2 (60MB)
         ...

If you want to have changes to myproject1's source and includes in a
single commit you have to commit from /, which means you have to do a
checkout from /, and diff, status, etc. Meaning you're forced to have
the whole tree on your disk and svn has to deal with *everything* under
source & include, not just myproject1. Imagine you have myproject1 ..
myproject99, and several hundred MB under source/; You're quickly
forced to move to (an admittedly saner) layout of:

/
|-myproject1/include
| /source
|
|-myproject2/include
             /source

Substitute include and source for whatever categories of files you may have.

Overall, I think these issues are quite minor compared to advantages of
svn over vss.

I hope that helps.

-Nathan

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Aug 5 18:47:28 2004

This is an archived mail posted to the Subversion Users mailing list.