Bringing this from users@ to dev@. Rolf Campbell discovered an assertion failure that I think might shed some light on other assertion failures we've been hearing about from time to time.
> ---------- Forwarded message --------- > From: Rolf Campbell <rolf.campb...@solace.com> > Date: Thu, Dec 2, 2021 at 3:29 PM > Subject: Re: Can't create temporary file from template ... No such file or > directory > To: Nathan Hartman <hartman.nat...@gmail.com> > Cc: us...@subversion.apache.org <us...@subversion.apache.org> > > > Hello Nathan, > > Thank you for the reply. > > I assure you that it was not related to disk space. I tried it on 3 > different computers using 2 different versions of SVN. > > I tried to create a reproduction script and instead I caused the svn client > to crash. > > Here is my script: > > svnadmin create test > svn checkout file://$PWD/test test.1 > cd test.1 > svn mkdir ^/trunk -m "" > svn mkdir ^/branches -m "" > touch a > svn add a > svn commit -m "" > svn cp ^/trunk ^/branches/b -m "" > svn mkdir ^/trunk/c -m "" > svn mkdir ^/trunk/c/d -m "" > svn mkdir ^/branches/b/c -m "" > svn mkdir ^/branches/b/c/e -m "" > cd .. > svn co file://$PWD/test/branches/b > cd b > svn merge ^/trunk . > > And here is the output when I try it (multiple times): > --- Merging r4 through r8 into '.': > C c > A c/d > --- Recording mergeinfo for merge of r4 through r8 into '.': > U . > Summary of conflicts: > Tree conflicts: 1 > Searching tree conflict details for 'c' in repository: > Checking r5... done > Tree conflict on 'c': > A new directory appeared during merge of > '^/trunk/c:4-8'. > It was added by rcampbell in r5. > A directory which already occupies this path was found in the working copy. > Select: (p) Postpone, (r) Mark as resolved, (i) Ignore incoming addition, > (m) Merge the directories, > (R) Delete my directory and replace it with incoming directory, > (M) Replace and merge, (h) Help, (q) Quit resolution: m > svn: E235000: In file 'subversion/libsvn_wc/adm_ops.c' line 384: assertion > failed (!copyfrom_url || (svn_uri_is_canonical(copyfrom_url, scratch_pool) && > SVN_IS_VALID_REVNUM(copyfrom_rev))) > Aborted (core dumped) It's not dumping core on mine. I would like to debug this properly but am running into various nonsense. For example, I haven't figured out how to run it under gdb since svn is being called through the libtool script; if I configure with --disable-shared the build fails. Sorry, I don't have the details atm. I'll have to rerun it later. Out of time for today but I will try to resolve these issues soon. What I do know so far is the reason that check_can_add_node() fails the assertion check: copyfrom_url is not canonical. When I run the above repro script at /home/nate/ramdrive, the non-canonical URL is "file:///home/nate/ramdrive/test/". Cheers, Nathan