Is it possible to recover some SVN revision by merging back?

I have TortoiseSVN 1.8.7 + VisualSVN Server 2.7.7 installed on my PC (Windows Server 2012). A colleague of mine recently told me when he tries to update the "XML Response Error Contains Invalid XML" message after a dialog box lists several updated files. When it refreshes again, the working copy is locked and needs to be cleaned up.

I am using the same repository as my colleague, but I can update and commit without issue.

After researching, I found a disk error in the event viewer and when I opened the log, I cannot see the log earlier than 6291. I tried to open the file "project \ db \ rev \ 6290" and after 10 ~ 15 seconds, the content is empty and more errors on disk appear in Event Viewer. I copied all files using robocopy to another drive, only the file above was crashing.

I thought these change files are similar to diff files, so maybe I can use my working copy (currently r6295) and project \ db \ 6291 ~ 6295 to "merge back" before 6290? Is it possible?

+3


source to share


4 answers


Merging back won't help here.

First, it makes sense to identify the root cause of the error your colleague is receiving. You say you are not getting the error, so we ask the following questions:



  • Is its working copy broken? Run svn cleanup

    against a working copy and check if the error persists. It also makes sense to try to reproduce the bug with a clean working copy, eg. run svn checkout

    and see if you get an error or not.

  • Is the repository corrupted? Run svnadmin verify -q

    in repository and check its output. I assume the repository is healthy in your case, but if it is not, the simplest solution would be to restore the repository from a backup.

+3


source


When running Kapersky Endpoint Security 10.0 on my corporate laptop, I ran into this error repeatedly for a minute or so to initiate a checkout on a large source branch.



Disabling Kapersky's protection temporarily solved the problem for me.

+3


source


The file \ db \ revprops \ 6290 is still intact, so I can view the entered log. This reminds me that only 1 file changes in this version.

So, I followed these steps:

  • Move the files version 6290 ~ 6295 to another location from \ db \ revprops and \ db \ revs for backup.
  • Change \ current and install the latest version to 6289.
  • Modify the file that was originally modified in r6290 again and commit so that there will be new 6290 files in both \ db \ revprops and \ db \ revs.
  • Transfer the files you saved in step 1 to \ db \ revprops and \ db \ revs. The file \ db \ revprops \ 6290 is overwritten, so the original commit date is also restored.
  • Change \ current and set the latest version to 6295.

Now my colleague can update normally and I can see all the change logs if I use the repository explorer and enter the URL (starts with https) of the VisualSVN server.

I couldn't see the log earlier than 6291 in my working copy. So I checked another directory and replaced .svn with dir. It was still displaying r6291 ~ 6295 only at the beginning. But it displayed fine when I tried again after a few minutes. It looks like old data is being cached somewhere.

So he decided. But these steps are helpful if you remember what was changed in the broken versions.

0


source


I faced this problem and now I manage to figure it out. let me share what i have done.

1) select your workspace folder and right click TortoiseSVN>>Settings

2) in the settings window select Log Caching >> Cached Repositories

3) make sure your svn directories are correct. most importantly, you just need to click on the repository url and click the "UPDATE" button .... to finish just clear the workspace by right clicking TortoiseSVN>>CleanUp

.

all the best..

0


source







All Articles