Re: GitHub svn bridge corrupting working copies
From: Ryan Schmidt <subversion-2016_at_ryandesign.com>
Date: Sun, 15 Oct 2017 14:00:10 -0500
Thanks for your suggestions!
On Oct 15, 2017, at 13:07, Daniel Shahaf wrote:
> Ryan Schmidt wrote on Sun, 15 Oct 2017 12:49 -0500:
Nothing unusual; just modifying one file and adding another:
> Try 'svn log -qvr N URL' and 'svnrdump
svn log works fine:
$ svn log -qvr r139308 https://github.com/macports/macports-ports/trunk
$ svnrdump dump https://github.com/macports/macports-ports/trunk -r 139308 --incremental
svnrdump: E200007: The requested report is unknown.
Same error on any revision I tried. Guess the bridge doesn't support svnrdump. (It doesn't support a lot of things, like blame.)
Somehow I don't think specific revisions are the problem. I mean, I can now check out a new working copy at revision 139307 and successfully update it to 139308. Meanwhile, on our server, once, back in August, it encountered a corruption already halfway through the process of checking out a new working copy. And on the next checkout attempt it worked.
>> I can "rm -rf kde && svn update kde" it, which restores it from the pristines, and then again fails to update it because of the corrupted node.
I have not! I've fixed the working copy with one of your later suggestions; see below.
>> I haven't tried to capture the network traffic. I haven't used such tools before, so I'm unfamiliar with them, and I can't reproduce the problem on demand so it seems problematic to try capturing all network traffic for days until the problem happens to occur.
I have several corrupted working copies saved from the server-side script that I can try things on later.
> You might be able to reproduce the problem by backdating your working
Inside the kde directory, I ran:
$ svn up -r 139306
$ svn up -r 139307
$ svn up -r 139308
$ svn status
$ rm -rf kdepimlibs4/files/patch-do_not_include_cpp.diff
$ svn up -r 139308
$ svn up
So at this point, the working copy seems to be fixed.
>> Thanks for any suggestions you might have! (Other than "use the git client instead"; I've tried that for months and it doesn't seem to be compatible with my brain.)
I'd like to try this but I'm not very familiar with the svn code. In subversion/libsvn_client/update.c I replaced "SVN_ERR(svn_ra_do_update3(...))" with "SVN_ERR(svn_delta__get_debug_editor(svn_ra_do_update3(...)))" but now svn segfaults when I update, so that must not have been right. Could you give more guidance on how to do this properly?
This is an archived mail posted to the Subversion Users mailing list.