Aight, having gone through several options, is what I came across: the problem is that Windows does not know about symbolic links, but Tortoise does not destroy them during Windows checks. The solution is to allow people to quote around the Windows share, and then find a way to add symbolic links.
Of course, just rewriting them is not an option, as Tortoise will complain about modified files / directories, etc. We want to leave them alone. For a web server with static images / other resources, a simple Alias will work in the symlinked dir in the Apache configuration, but, alas, our code base also includes code with a symbolic link.
Under debian unionfs-fuse these problems were resolved. A recipe that seems to work here:
- Create basic checks somewhere on the linux server (svnroots).
- Create the directory where we are going to create the "overlay" (carcass).
- Find the svn-checkouts directory for symbolic links and recreate them in the framework:
.
for file in `find $DEVPATH/svnroots/ -type l`;do path=`dirname $file | sed "s,$DEVPATH/svnroots,$DEVPATH/carcass,g"` mkdir -p $path path=$path/`basename $file`; ln -s `readlink $file` $path; done
- Create the necessary directories (with peoples files from their shared resource, but symbolic links are stored in subversive activities:
.
for user in ${windowsusers[@]}; unionfs-fuse -o cow,allow_other,suid,uid=33,gid=33 $DEVPATH/carcass=ro:$DEVPATH/$user/=rw $DEVPATH/correct_dirs/$user done
Reading / writing to this directory will go to the user directory, and the carcass directory is read-only, but superimposed on the user directory, which leads to the correct symbolic links. The scripts are light enough to rerun symbolic changes in subversion (and no need to remount: changes in the frame are directly reflected in the correct disks).
source share