Wie repariere ich ein beschädigtes Repository (das ein zentrales .svn-Verzeichnis hat)?

19

Ich habe kürzlich meine TortoiseSVN-Installation auf Version 1.7.1 aktualisiert. Dies zwang mich, auch meine Arbeitskopie zu aktualisieren. Das Upgrade entfernte alle (bis auf eines) der .svn-Verzeichnisse aus allen Unterverzeichnissen und ließ nur eines im Stammverzeichnis.

Aus heiterem Himmel (natürlich, ich vermute, meine Antivirensoftware) ist ein Fehler aufgetreten, wenn ich zum Beispiel versuche, die Arbeitskopie zu bereinigen. Ich kann auch nichts begehen.

Die Fehlermeldung beim Aufräumen lautet:

Die Bereinigung konnte die folgenden Pfade nicht verarbeiten: C: \ svn

Datei 'C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base' kann nicht geöffnet werden: Das System kann die angegebene Datei nicht finden.

Ich habe den Fehler auf das Vorhandensein eines Verzeichnisses in der Arbeitskopie zurückgeführt. Wenn ich es umbenenne, dann funktioniert alles. Wenn es vorhanden ist, erhalte ich den Fehler. Ich habe es auch gelöscht und wieder ausgecheckt. Keine Änderung, der Fehler bleibt bestehen.

Mit früheren Versionen konnte ich Schäden in der .svn leicht reparieren: einfach den fehlerhaften Ordner löschen und erneut auschecken. Ich kann das nicht mehr tun, weil jetzt das .svn-Verzeichnis zentralisiert ist.

Was kann ich tun, um meine Arbeitskopie zu reparieren?

Heinrich Ulbricht
quelle

Antworten:

21

Datei 'C: \ svn.svn \ pristine \ 73 \ 73bcc5fa7819f84f56b81dfa0236f0aac7b7d404.svn-base' kann nicht geöffnet werden

Ich hatte nur einen ähnlichen Fehler und musste diese Datei tatsächlich mit dem Editor erstellen und dann funktionierte die Bereinigung.

Dave Storm
quelle
1
Aber ist das sicher zu tun? Wird "svn cleanup" diese Datei wieder leer machen? (Weil es sicherlich vorher war, nein?)
Hans_Meine
Ich kann bestätigen , dass diese Methode funktioniert, bin ich sicher nicht , was das Ergebnis / Verlust aus solchen eine leere Datei erstellen - aber nicht , es zu schaffen, hat mir nicht erlauben, „gehen Sie mit den Commit“
nrathaus
4

Anstatt eine leere Datei zu erstellen (was ich nicht gewagt habe), habe ich nur das betroffene Verzeichnis vorübergehend neu ausgecheckt (wobei dieselbe Revision angegeben wurde) und die fehlende Datei aus dem neuen .svn-Unterordner in das fehlerhafte Arbeitsverzeichnis kopiert .

Um dies weiter zu veranschaulichen, wurde in meinem Fall die Datei svn beanstandet .svn/pristine/d1/d12a84ef7be5dad86b76e1a45fc3da4698d38796.svn-base, die genau der Pfad ist, der im frischen, teilweisen Checkout zu finden ist.

hans_meine
quelle
3

Wir hatten das gleiche Problem nach dem Upgrade von einer älteren Version auf Tortoise SVN 1.7.7.

Da ich keine andere Lösung gefunden habe, habe ich die lokale Arbeitskopie gelöscht und erneut ausgecheckt. Es funktioniert jetzt gut.

Tomas Chlouba
quelle
2

Ich habe das Problem erhalten, als ich eine Zusammenführung abgebrochen habe. Ich konnte keine SVN-Aktion ausführen. Bei der Durchführung einer SVN-Bereinigung wurde der Fehler ausgegeben, dass eine angegebene Datei nicht gefunden werden kann, was zu einem Bereinigungsfehler geführt hat.

Ich habe eine Dummy-Datei mit genau diesem Namen im angegebenen Ordner erstellt und eine SVN-Bereinigung durchgeführt.

Dann konnte ich weitermachen.

user304100
quelle
0

Ich hatte ein ähnliches Problem, bei dem gesagt wurde, dass eine Datei C:\working_copy\dir\file.xmlnicht gefunden werden konnte. Ich hatte das dirVerzeichnis gelöscht . In meinem Fall konnte die Bereinigung durch einfaches Hinzufügen eines neuen dirOrdners und einer neuen file.xmlDatei (mit leerem Text) fortgesetzt werden. Anschließend konnte ich die Arbeitskopie ordnungsgemäß aktualisieren.

jevon
quelle
0

Mein Problem war, dass ich jedes Projekt in meiner IDE neu konfigurieren musste, wenn ich aus dem Scratch-Repository auscheckte. Das Speichern von Änderungen war mir egal.

Ich habe das .svn-Verzeichnis und das Checkout-Repository im selben Verzeichnis entfernt.

Das Problem wurde behoben: Ich konnte alle SVN-Operationen ausführen und das Projekt war noch in der IDE konfiguriert

Shapoval Sergio
quelle