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

Collections in Subversion. Part 2 of 2: Request for Comment

From: B. W. Fitzpatrick <fitz_at_red-bean.com>
Date: 2002-05-23 07:39:52 CEST

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

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