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

Re: AW: FSVS 1.0.5 released

From: Philipp Marek <philipp_at_marek.priv.at>
Date: 2006-03-13 17:57:17 CET

On Monday 13 March 2006 13:43 Markus Karg wrote:
> I didn't actually get what your tool is good for (I understand what it
> aims, but I do not understand the benefit it brings compared to just
> keeping my whole disk mirrored in a SVN repository). Can you explain what
> the benefit is?
It does mirror the disk in a SVN repository.
But not via the svn command line utility (which I believe you use), but via
the fsvs program, which is another client which can be used against a
subversion repository.
(Hooray for the pluggable subversion structure :-)

The differences between the svn client and fsvs are:
- fsvs keeps the modification timestamp, the owner, group and access mode
  of your files in the repository, and restores them on update/export.
- svn is restricted to files, directories, and symlinks; fsvs does device
  nodes too.
- The svn client needs the .svn-directories, with the full-text of your
  text-base in them; that means 4x the inodes, and >2x the space needed
  in your filesystem.
  Because of that is FSVS faster (at least IMO, I didn't benchmark it
  against svn); it's sometimes faster than a find, because it has the nodes
  sorted by inode in it's datafile, and so can drive the disk in a nearly
  linear fashion, whereas svn fetches information for *many* files, which
  pollute the file and inode cache, ...
- There is some resistance in svn against including full-meta-data versioning;
  the arguments are code bloat and maintenance.

As fsvs won't do many of the tasks subversion does, it has a much smaller code
size; and (IMO) is much cleaner, too.
The code that deals with setting the executable bit in subversion is
distributed (in the form of functions calls) in a lot of client commands;
there's update, checkout, export, diff, repos-diff, and so on.
In fsvs I'm careful to have a few more if-statements in the correct places,
but avoid many code duplications (see eg. - I use the same functions in
export and update. Although I have to admit that shared functions have to be
moved to a seperate file (they will)).

If nothing else, the first three points above make fsvs the clear winner in a
comparision against svn - that's why I wrote it :-)

Hope that helps!

Regards,

Phil

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Mon Mar 13 18:12:46 2006

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.