Hi,
It looks like this issue was already fixed since 1.9.0. Backporting the fix to 1.8 is not trivial (but not that hard either). The relevant revision is r1627338. The old code just assumes that svn:externals describes exactly what is in the working copy, while the new code checks what is really there. (Will even relocate working copies that are still there, but already removed from svn:externals) Bert From: Axel Kittenberger [mailto:axk...@gmail.com] Sent: dinsdag 6 oktober 2015 13:25 To: users@subversion.apache.org Subject: svn segfaults on relocate when having a not checked out external Hello, below is my shell script that raises the svn segfault for me. The issue is, doing a relocate while having an external that is not in the working copy. It raised for me, since I got one automated instance that automatically sets externals for a repository, but does not need to check it out itself, so it updates with "--ignore-externals", now I tried to relocate that daemons working copy, svn segfaulted. Its no big issue for me, since I can always revert to do a full checkout instead, or update without --ignore-externals, relocate and delete the externals in the working copy. Still I guess, a segfault never should be not a bug, so I report it. Operating System is Debian Jessie, if you no need any more info just ask. Kind regards, Axel ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~$ svn --version svn, version 1.8.10 (r1615264) compiled Aug 9 2015, 13:48:39 on x86_64-pc-linux-gnu Copyright (C) 2014 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository access (RA) modules are available: * ra_svn : Module for accessing a repository using the svn network protocol. - with Cyrus SASL authentication - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme * ra_serf : Module for accessing a repository via WebDAV protocol using serf. - using serf 1.3.8 - handles 'http' scheme - handles 'https' scheme ~$ mkdir atest ~$ cd atest/ atest$ svnadmin create repository1 atest$ svnadmin create repository2 atest$ svn checkout file:///home/axel/atest/repository1 rep1 Checked out revision 0. atest$ svn checkout file:///home/axel/atest/repository2 rep2 Checked out revision 0. atest$ atest$ cd rep2/ rep2$ echo "bar" > foo rep2$ svn add foo A foo rep2$ svn commit -m foobar Adding foo Transmitting file data . Committed revision 1. rep2$ cd .. atest$ cd rep1/ rep1$ echo "^/../repository2 extrep2" > externals rep1$ svn propset svn:externals . -F externals property 'svn:externals' set on '.' rep1$ svn up Updating '.': Fetching external item into 'extrep2': A extrep2/foo Updated external to revision 1. At revision 0. rep1$ cat extrep2/foo bar rep1$ ### everything working as expected so far ### rep1$ rm -rf extrep2/ rep1$ cd .. atest$ mv repository1/ namechange1 atest$ cd rep1/ rep1$ svn relocate file:///home/axel/atest/namechange1 Segmentation fault rep1$ This is easily tough circumvented with this. Which once again works as expected: rep1$ svn up Updating '.': Fetching external item into 'extrep2': A extrep2/foo Updated external to revision 1. At revision 0. rep1$ svn relocate file:///home/axel/atest/namechange1