My thoughts on the following cases (see below): 
> -----Original Message-----
> From: Mark Phippard [mailto:markp@softlanding.com] 
> Sent: Tuesday, January 31, 2006 10:58 AM
> To: Gale, David
> Cc: Duke Tantiprasut; users@subversion.tigris.org
> Subject: RE: RE: Symlinks on Win32...
> 
> "Gale, David" <David.Gale@Hypertherm.com> wrote on 01/31/2006 
> 01:39:18 PM:
> 
> > I'd second this idea.
> > 
> > Given:
> > 
> > /foo
> >   - file1
> > /bar
> > 
> > svn link svn://example.com/foo/file1 svn://example.com/bar/file2
> > 
> > Should produce:
> > /foo
> >   - file1
> > /bar
> >   - file2
> > 
> > At which point, the following should be true:
> > svn co svn://example.com/
> > cd bar
> > <change file2>
> > svn ci
> > cd ../foo
> > svn stat -u
> > U file1
> > 
> > 
> > Any other design thoughts?  Any votes against, or shall we 
> pass this 
> > on to the dev list?
> 
> I wouldn't say that I am against it, but I think there are so 
> many edge cases to consider that you have little chance of 
> ever seeing someone try to implement it.
> 
> 
> I wouldn't say that I am against it, but I think there are so 
> many edge cases to consider that you have little chance of 
> ever seeing someone try to implement it.
> 
> First off, let me just say that your example does a nice job 
> of expressing what you see as the requirements.  But let's be 
> realistic here.  Once your repository is materialized into a 
> working copy you have to start dealing with the realities and 
> limitations of the local file system.  In your example, how 
> do you see the working copy code being able to see file1 as 
> having been changed, when it hasn't been?
DUKE> Both working copies of /foo/file1 and /bar/file2 is compared with the
respository /foo/file1. If the working copy of /bar/file2 is changed and
checked in, it updates /foo/file1. The repository /bar/file2 is simply a
link.
> 
> Now for a few quick edge cases:
> 
> What if file1 and file2 are both modified in the working copy?
DUKE> The working copy is just a "copy" and NOT a symlink on the file
systems. If the working copy of /foo/file1 is changed, the working copy of
/bar/file2 is completely unaware until file1 is checked in and file2 tries
to check in. Think of it as 2 users working on the same repository file but
in this case the two users are the same user and the repository file2 is a
symlink to repository file1.
> 
> What does svn delete of one of the files do?  What if one is 
> changed and the other deleted? 
DUKE> delete on the link (i.e. svn://../bar/file2) removes the link. It does
not remove the original file. If you remove the original file, all symlinks
are also removed.
I think to start of it may be easier to restrict symlinks to just
directories. This would be similar svn:externals but would also allows
changes to contents (files, properties, etc) in the symlinked directory to
be check in and update the originals. I think svn:externals are fine for
external repositories, but for local references, it shouldnt be so limited.
Duke
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Tue Jan 31 20:39:04 2006