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

Re: [PROPOSAL] Drop XML from .svn/entries

From: Mattias Engdegård <mattias_at_virtutech.se>
Date: 2006-04-07 18:29:57 CEST

Philip Martin <philip@codematters.co.uk> writes:

>Reduced disk IO and a small reduction in working copy size. At
>present the format file is read every time the entries file is read.

Very worthwhile goals. If it is permitted to suggest more aggressive
WC improvements in the same spirit, I would like to mention:

- Put dir-props and dir-prop-base into entries as well.

- Combine all prop-files into one single file: Any file with properties will
  take a full disk block for each prop-file (two per file), in addition to
  the inodes (which are not free either, contrary to common belief).
  And it gets even worse when running SELinux[*].

- Use file locking instead of lock files. This should be considerably faster,
  especially over network file systems, and will not leave locks hanging if
  a crash occurs. (It won't work on NFSv2, but nor do plain lock files without
  a little bizarre dance with link() and stat() which isn't done today.)

- Combine all the .svn directories to one single directory in the root of the
  WC. This could avoid several recursive traversals entirely, and need fewer
  locks. Users would be happy too (no .svn/ dirs everywhere).

- If the user explicitly asks for it, hardlinked text-base files.
  Most editors will break the links on editing, and disk usage would be
  almost halved. Inadvertent corruption of the text-base could be detected.
  Checkout performance would be much improved as it's mostly I/O bound.
  Comparing a file against its hard-link costs zero syscalls if the inodes
  (from the readdir) are the same.

- Remove README.txt and empty-file.

[*] SELinux, even in "permissive" mode, will tag each file with an
    extended attribute. In ext3, extended attributes are stored in an
    extra disk block. We discovered that a single medium-sized WC
    consumed over 220 MB extra disk space this way - each file would
    use 4K for itself, its text-base, prop and prop-base (even when
    the latter two were empty).

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Apr 7 18:31:47 2006

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

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