i'm in contact with a user, who is using subversion
in a production environment.
He already helped to fix an opendir() bug in cifs vfs.
Now he is facing a different problem regarding renaming
(or deleting) a "not matching/resolving" symlink,
when accessing a svn repository located on a samba share.
I'm not quite sure, whether it's an "internal svn glitch",
a limitation of some smb "rules" or just a samba bug...
The following does work on a local file system, but not
on a samba share (atm using here 3.3.0-GIT-5265411-test),
when being accessed from latest git cifs vfs:
ln -s test/abc test/mylink /* OK! (but the link does not resolve!) */
mv test/mylink test/mylinknew /* is failing with ENOENT on samba */
BTW - obviously, the just created symlink "test/mylink" can't be removed, too:
// the symlink could be created, but will now stay there forever :-)
rm test/mylink /* again ENOENT on samba */
Anyway, what do you think about this?
I append the user's test applet, which I've converted from C++ to C,
which also includes some strace logging of subversion.
(It just mimics the above console cmds behaviour)
Created attachment 3914 [details]
Created attachment 3915 [details]
Patch for 3.3.0.
Created attachment 3916 [details]
Patch for master
First of all many thanks to Toby Collett for reporting this
and his very helpful test applet! :-)
I've tested the patch and all is working now as expected. :-)
I have notified Toby about the patch. When i get a positive
answer back, I'll drop a note to close this one.
Sorry about taking so long to verify this. Unfortunately I was not able to verify in the production configuration as we use samba 3.0 (from ubuntu hardy). I have verified that subversion works with symlinks in samba 3.3.1 which includes this patch (according to changelogs)
Thanks for the fix,
Fixed by Jeremy in e7c09d8b105d8182e7ae3948a664169dc13198e9