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

Single file externals plan

From: Blair Zajac <blair_at_orcaware.com>
Date: Tue, 22 Apr 2008 08:44:23 -0700

I'm working on extending svn:externals to allow single files to be
placed into a working copy, not just directories.

Here's my current thinking on behavior and implementation.

- Support only intra-repository file externals. This will allow the
svn client to effectively do a 'touch foo; svn add foo; svn switch URL
foo' to have a external in the wc (those actual commands only work in
a 1.5 client). So unlike a directory external, the .svn/entries file
has entries for file externals. This is needed for supporting all the
client commands on a file. I don't see modifying the existing
directory behavior.

- The working copy gets an additional flag for each entry indicating
if the file is an external. This allows the svn:externals to place an
external file in a subdirectory of the directory that has the
svn:externals property so the subdirectory doesn't have to check any
externals when interacting with the file. If we didn't have this, I
think file externals would only work in the directory with the
svn:externals feature.

- Commit behavior:
   - A conflict on a external file prevents a commit just as if the
working copy had a non-external file conflict.
   - However, the commit does not send any modifications on the file
external to the server, just as if the external was a directory
   Presumably a conflict in a file external indicates breakage that
should be fixed to allow a commit to go through. However, like our
policy with directory externals, we shouldn't commit it implicitly.

- The status command will check if a file is an external and print
using a lowercase 'x', so people can distinguish between a directory
and file external.

- Change the text shown during checkout or update
     Fetching external item into 'foobar'
     Fetching external item into directory 'foobar'

     Fetching external item into file 'foobar'

This doesn't look too hard, probably a large amount of edge cases. Am
I missing anything? Will merge info for the switched file just work?


Blair Zajac, Ph.D.
CTO, OrcaWare Technologies
Subversion training, consulting and support
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-04-22 17:44:52 CEST

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.