Handling collections (aka document bundles) in Subversion requires a
few changes to the way that working copies handle administrative file
directories (i.e. ".svn" directories). These changes affect working
copies only, and files inside of these collections will not be handled
differently than any other file in the Subversion filesystem.
Proposal:
- Have a property that, when set on a directory, signifies "This child
directory is a collection and the adm_files_dir of this directory
should be kept in our adm_files dir".
- For example:
$ cd mydir
$ ls
foo bar Main.nib qux
$ svn propset svn:Main.nib collection .
(Note that I'm setting the property on the parent directory. I
chose to do this because, when checking out a directory, we don't
have the properties of the directory itself yet. Any suggestions
WRT The Right Way of doing this would be welcome.)
- Main.nib's .svn dir would become
mydir/.svn/collections/Main.nib/
- Have a property that, when set on a directory, signifies that the
collection is to be treated as opaque. That is, the contents of the
directory should be added and removed from version control as they
are added and removed from the filesystem.
- For example:
$ svn propset svn:Main.nib opaque-collection .
Changes we'll need to make:
- With the exception of a few references to SVN_WC_ADM_DIR_NAME in
libsvn_client and clients/cmdline, these changes will take place
almost exclusively in libsvn_wc. (Bullet points represent iterations
that can be tested and checked in atomically):
- Rework code that refers directly to SVN_WC_ADM_DIR_NAME to use a
function (perhaps named svn_wc_adm_dir) to obtain the path to the
administrative directory in question.
- When a working copy is checked out, the admin directory needs to
be put in the right place (i.e. in the parent's adm_files_dir) for
collections.
When the user does any other action (update, checkin, etc)
libsvn_wc needs to go to the right place to get administrative
data.
- When the user does a checkin (perhaps also when we update?),
libsvn_wc need to add/remove files from opaque collections as
appropriate.
- We need to write some test cases for this to make sure we don't
screw up anything else. :)
Comments appreciated. Flames will be backed up to tape, restored,
printed out, and used for kindling.
Note that issue 707 has been filed for this feature.
-Fitz
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu May 23 07:41:09 2002