On Thu, Aug 23, 2018 at 8:53 PM Nathan Hartman <hartman.nat...@gmail.com> wrote: > On Thu, Aug 23, 2018 at 9:46 AM Christoph Hannebauer > <christoph.hanneba...@glueckkanja.com> wrote: >> I have not subscribed to the users mailing list, so please CC me in this >> thread. >> >> My SVN crashed with this error message: >> 'D:\Development\SVN\Releases\TortoiseSVN-1.10.1\ext\subversion\subversion\libsvn_wc\wc_db.c' >> line 1648: assertion failed (SVN_IS_VALID_REVNUM(changed_rev)) >> >> What I did before the crash, was execute the following command: >> svn checkout >> https://github.com/Microsoft/Windows-classic-samples/trunk/Samples/Win7Samples/security/certificateservices/exit/c++/WindowsServer2008R2 >> >> I didn’t check whether other machines also show this behavior, but I did >> check that TortoiseSVN 1.9.7 is also affected. > > Interesting. There is another thread about an assertion failure, also in a > call to SVN_IS_VALID_REVNUM(), but in a different file. Could these be > related?
No, it seems not. I believe this is a bug in GitHub's emulation of the subversion protocol. First, when I try to checkout a parent directory higher up, it works fine: svn checkout https://github.com/Microsoft/Windows-classic-samples/trunk/Samples/Win7Samples/security/certificateservices/exit As soon as you add the "c++" to the checkout path, it crashes: [[[ svn checkout https://github.com/Microsoft/Windows-classic-samples/trunk/Samples/Win7Samples/security/certificateservices/exit/c++ svn: E235000: In file 'D:\Development\SVN\Releases\TortoiseSVN-1.10.1\ext\subversion\subversion\libsvn_wc\wc_db.c' line 1648: assertion failed (SVN_IS_VALID_REVNUM(changed_rev)) ]]] URL-encoding the '+' signs doesn't help by the way: [[[ svn checkout https://github.com/Microsoft/Windows-classic-samples/trunk/Samples/Win7Samples/security/certificateservices/exit/c%2B%2B/ svn: E235000: In file 'D:\Development\SVN\Releases\TortoiseSVN-1.10.1\ext\subversion\subversion\libsvn_wc\wc_db.c' line 1648: assertion failed (SVN_IS_VALID_REVNUM(changed_rev)) ]]] But if I try the same with a regular SVN repository, there is no problem: [[[ C:\Temp\svntest>svnadmin create repos C:\Temp\svntest>svn mkdir -mm --parents "file:///C:/Temp/svntest/repos/trunk/c++/WindowsServer2008R2" Committing transaction... Committed revision 1. C:\Temp\svntest>svn ls file:///C:/Temp/svntest/repos/trunk c++/ C:\Temp\svntest>svn ls file:///C:/Temp/svntest/repos/trunk/c++ WindowsServer2008R2/ C:\Temp\svntest>svn co file:///C:/Temp/svntest/repos/trunk/c++ A c++\WindowsServer2008R2 Checked out revision 1. C:\Temp\svntest>svn co file:///C:/Temp/svntest/repos/trunk/c++/WindowsServer2008R2 Checked out revision 1. C:\Temp\svntest>dir ... 05-09-2018 16:33 <DIR> . 05-09-2018 16:33 <DIR> .. 05-09-2018 16:33 <DIR> c++ 05-09-2018 15:12 <DIR> repos 05-09-2018 16:33 <DIR> WindowsServer2008R2 ]]] So I conclude that this is a bug in GitHub, sending it's data to the svn client. Workaround: perform a checkout of a parent directory higher up the tree, so the root path of your working copy does not contain those '+' signs. -- Johan