Discontinued (for now?)
I really don't have time to work on this project. I was hitting some
bigger difficulties with getting a reasonable performance out of SVN without
writing my own SVN client.
However, there is now
FSVS, which
should be able to do most of what I intended to achieve with laysvn, so you
might just want to go ahead and try that software. It's likely more mature,
it's hosted at the subversion site and apparently still under development.
Layered subversion
This is a small utility called 'laysvn', which uses multiple layers
of subversion to generate one working directory.
Setup
Create two directories. One for the real svn checkouts (I called
it 'storage', you can place it anywhere, and one directory for your working
copy.
Inside the working copy directory, create a dir named .laysvn, in there
make a new file called
laysvn.xml with contents
following this schema:
<config title="LaySVN test">
<storage path="/path/to/where/your/storage/dir/is" />
<layer id="base" source="http://subversionserver/repository/layers/base" />
<layer id="dns" source="http://subversionserver/repository/layers/dns" />
<layer id="apache" source="http://subversionserver/repository/layers/apache" />
<layer id="hostname" source="http://subversionserver/repository/layers/hostname" />
</config>
Now you can run laysvn in this directory, it will checkout your layers,
and then copy the files from the layers into your working dir!
To check in your changes, you have to chdir to your storage/layer
directory and run 'svn ci' there. This is also where you can resolve
conflicts.
Command line syntax
Just four commands, no options available currently:
- explain: this will list the layers you have configured
- update: this will copy your changes to your local repository, then update
all the layers, then copy back the files to your working copy
- up-rep: update the repository only
- status: copy your changes to your local repository, then inquire status
(note that this will restore deleted files from your local repository)
- diff: this will diff the file with the reference. Calling this function
with multiple files is okay - dirs is not.
- revert: revert a file to its reference layer. Calling this function for
multiple files is okay - behaviour for dirs is undefined.
Download