Doug Brown
2017-07-13 00:34:48 UTC
Hi,
I recently discovered what I think is a bug in Subversion. As per the
bug reporting instructions, I'm posting on this mailing list first to
confirm. I'm seeing this issue in fully-updated Ubuntu 16.04 with
subversion 1.9.3, as well as the subversion trunk revision 1801307. It
seems to be related to svn:externals with root-relative URLs (^/). If I
attempt to export a specific revision from a checkout, and that revision
contains root-relative externals, svn will error out:
svn: subversion/libsvn_subr/dirent_uri.c:324: canonicalize: Assertion
`*src != '/'' failed.
Aborted (core dumped)
It only seems to be a problem if I'm exporting from a checkout rather
than a repository URL. Here is an example set of steps to reproduce this
problem:
# Set up a repository with root-relative externals
svnadmin create /tmp/testrepo
svn co file:///tmp/testrepo /tmp/testrepo-co
cd /tmp/testrepo-co
touch test1.txt
svn add test1.txt
svn mkdir ext
svn propset svn:externals '^/test1.txt test2.txt' ext
svn commit -m "test commit 1"
svn update
# Exporting without the -r option succeeds
svn export /tmp/testrepo-co /tmp/testexport1
# Exporting from the repository URL with -r succeeds
svn export -r 1 file:///tmp/testrepo /tmp/testexport2
# Exporting from a checkout with -r errors out with the following message:
# svn: subversion/libsvn_subr/dirent_uri.c:324: canonicalize: Assertion
`*src != '/'' failed.
svn export -r 1 /tmp/testrepo-co /tmp/testexport3
I believe that it's a bug and I should still be able to use the -r
option when exporting from a checkout. Anybody have any thoughts? Am I
OK to make a report in the issue tracker?
I am not subscribed to this list, so please CC me with any responses.
Thanks!
Doug
I recently discovered what I think is a bug in Subversion. As per the
bug reporting instructions, I'm posting on this mailing list first to
confirm. I'm seeing this issue in fully-updated Ubuntu 16.04 with
subversion 1.9.3, as well as the subversion trunk revision 1801307. It
seems to be related to svn:externals with root-relative URLs (^/). If I
attempt to export a specific revision from a checkout, and that revision
contains root-relative externals, svn will error out:
svn: subversion/libsvn_subr/dirent_uri.c:324: canonicalize: Assertion
`*src != '/'' failed.
Aborted (core dumped)
It only seems to be a problem if I'm exporting from a checkout rather
than a repository URL. Here is an example set of steps to reproduce this
problem:
# Set up a repository with root-relative externals
svnadmin create /tmp/testrepo
svn co file:///tmp/testrepo /tmp/testrepo-co
cd /tmp/testrepo-co
touch test1.txt
svn add test1.txt
svn mkdir ext
svn propset svn:externals '^/test1.txt test2.txt' ext
svn commit -m "test commit 1"
svn update
# Exporting without the -r option succeeds
svn export /tmp/testrepo-co /tmp/testexport1
# Exporting from the repository URL with -r succeeds
svn export -r 1 file:///tmp/testrepo /tmp/testexport2
# Exporting from a checkout with -r errors out with the following message:
# svn: subversion/libsvn_subr/dirent_uri.c:324: canonicalize: Assertion
`*src != '/'' failed.
svn export -r 1 /tmp/testrepo-co /tmp/testexport3
I believe that it's a bug and I should still be able to use the -r
option when exporting from a checkout. Anybody have any thoughts? Am I
OK to make a report in the issue tracker?
I am not subscribed to this list, so please CC me with any responses.
Thanks!
Doug