You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Brian Buesker <bb...@qualcomm.com> on 2005/06/15 00:39:41 UTC

Merge adding dangling symlink fails

I initially sent this to users@ but did not receive a response. I don't 
mean to pester, but I just wanted to make sure it didn't accidentally 
fall through the cracks. Should I file this as an issue?

I came across the following problem. If a versioned symlink is dangling, 
and you do a merge which tries to add that symlink again, it fails with 
an error (message shown is from svn 1.1.4, although the message is the 
same with a different line number for other versions):

subversion/libsvn_subr/io.c:1946: (apr_err=2)
svn: Can't open file 'link': No such file or directory

It fails with the same error even with an svn merge --dry-run.

The reproduction recipe is simple (below and in the attached script):

% REPOS=$PWD/svn.$$
% REPOS_URL=file://$REPOS
% svnadmin create $REPOS
% mkdir import
% cd import
% mkdir branches trunk
% svn import -m 'initial import' . $REPOS_URL
Adding         trunk
Adding         branches

Committed revision 1.
% cd ..
% svn co $REPOS_URL/trunk
Checked out revision 1.
% cd trunk
% ln -s dangling link
% svn add link
A         link
% svn commit -m 'added dangling link'
Adding         link
Transmitting file data .
Committed revision 2.
% cd ..
% $SVN co $REPOS_URL/branches
Checked out revision 2.
% cd branches
% ln -s dangling link
% svn add link
A         link
% svn commit -m 'added dangling link'
Adding         link
Transmitting file data .
Committed revision 3.
% svn merge --dry-run -r1:2 ../trunk
subversion/libsvn_subr/io.c:1946: (apr_err=2)
svn: Can't open file 'link': No such file or directory

I have reproduced this with the head of the 1.2.x branch as well as trunk.

Here is my environment:
OS: Fedora Core 3

SVN Version:
% svn --version
svn, version 1.1.4 (r13838)
  compiled Apr  5 2005, 15:49:54

Copyright (C) 2000-2004 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet 
(http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
 - handles 'http' schema
 - handles 'https' schema
* ra_local : Module for accessing a repository on local disk.
 - handles 'file' schema
* ra_svn : Module for accessing a repository using the svn network 
protocol.
 - handles 'svn' schema

Compiler:
$ gcc --version
gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Perl:
$ perl -v

This is perl, v5.8.5 built for i386-linux-thread-multi

Copyright 1987-2004, Larry Wall

Perl may be copied only under the terms of either the Artistic License 
or the
GNU General Public License, which may be found in the Perl 5 source kit.

Complete documentation for Perl, including FAQ lists, should be found on
this system using `man perl' or `perldoc perl'.  If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.

Berkeley DB Version: 4.2.52

OpenSSL Version:
$ rpm -q openssl
openssl-0.9.7a-40

Please let me know if you need any more information.

Thanks,
Brian