it-swarm.com.de

Warum bekomme ich immer 'SVN: Arbeitskopie XXXX gesperrt; Versuchen Sie, "Bereinigung" durchzuführen?

Wenn Sie bereits mit SVN-Tools in Eclipse (Subversion, subversive) gearbeitet haben, sind Sie wahrscheinlich mit dem Fehler "Arbeitskopie" XXX "gesperrt ..." vertraut.

Ich habe einen sehr nützlichen Beitrag mit einer Problemumgehung für dieses Problem gefunden: Arbeitskopie XXX gesperrt und Bereinigung in SVN fehlgeschlagen

So groß die Umgehung auch ist, es ist ein Schmerz, es immer wieder zu tun. Weiß jemand, warum ich diesen Fehler immer wieder bekomme und welche Schritte unternommen werden könnten, um dies zu verhindern?

Kontext: Ich erstelle ein Eclipse-Plugin, das das Abhören von SVN-Ereignissen beinhaltet. Beim Testen dieses Plugins öffne und schließe ich den Arbeitsbereich ständig. Normalerweise mache ich jedes Mal ein oder zwei Commits, wenn ich den Arbeitsbereich öffne. Gelegentlich schlägt das Commit fehl und ich bekomme den Fehler "Arbeitskopie gesperrt". Ich würde mich freuen, wenn dieser Fehler nicht mehr auftritt. Daher wird jeder Rat geschätzt.

Vielen Dank!

45
jbranchaud
  1. Wählen Sie das Projekt aus
  2. Klicken Sie mit der rechten Maustaste auf das ausgewählte Projekt
  3. Team -> Aufräumen

Problem gelöst.

Hinweis: Die obigen Schritte funktionieren nur mit Eclipse (Indigo-Paket).

81
Peter Prabu

Im Allgemeinen wird eine .lock-Datei erstellt, die entscheidet, ob der Status der Datei gesperrt/freigegeben ist. Ich denke, wenn Sie nur diese .lock-Datei löschen, wird das Problem behoben.

14
fmucar

Ich hatte schon viele Probleme mit SVN und eine Sache, die mich definitiv Probleme verursacht hat, ist das Ändern von Dateien außerhalb von Eclipse oder das manuelle Löschen von Ordnern (die die .svn-Ordner enthalten). 

bearbeiten Sie sollten auch darauf achten, SVN-Vorgänge nicht zu unterbrechen, obwohl manchmal ein Fehler auftreten kann, der dazu führt, dass die .lock-Datei nicht entfernt wird und daher Ihr Fehler.

9
Kenny Cason

Stellen Sie sicher, dass Sie genau das aufräumen, was die Konsole sagt. Zum Beispiel, wenn ein Unterordner (ein Paket) gesperrt ist:

   svn: E155004: Commit failed (details follow):
  svn: E155004: Working copy 'C:\Users\laura\workspace\tparser\src\de\test\order' locked
  svn: E155004: 'C:\Users\laura\workspace\tparser\src\de\test\order' is already locked.

bereinigung C:/Benutzer/Liparulol/Arbeitsbereich/Tparser/src/de/mc/etn/parsers/order

Dann müssen Sie den angegebenen Ordner und nicht das gesamte Projekt bereinigen. Wenn Sie sich in Eclipse befinden, klicken Sie mit der rechten Maustaste auf das Paket, nicht auf den Projektordner, und führen Sie die Bereinigung aus.

4
Laura Liparulo

Nach weiteren Untersuchungen und Tests scheint es, dass dieses Problem durch das Debuggen des Plugins und das Verwenden von Haltepunkten verursacht wurde. SVN/Subclipse mochte offenbar keine Haltepunkte in der Mitte ihrer Ausführung, weshalb diese Sperrdateien erstellt wurden. Sobald ich mit dem Plugin angefangen habe, ist dieses Problem verschwunden.

3
jbranchaud

Dies geschieht, wenn in einem Ihrer Ordner in Ihrem Projekt ein Fehler aufgetreten ist. Sie müssen den genauen Ordner herausfinden, der gesperrt ist, und svn cleanup unter dem jeweiligen Ordner ausführen. Sie können dies wie folgt lösen:

  1. führen Sie den Befehl svn commit aus, um herauszufinden, welcher Ordner fehlerhaft ist.
  2. wechseln Sie in das Verzeichnis und führen Sie svn cleanup aus. Dann ist es fertig.
3
Simon

Ich hatte das gleiche Problem mit dem com.xxx.service.model-Paket. 

Um das Problem zu beheben, habe ich zunächst eine Sicherungskopie der Codeänderungen im Modellpaket erstellt. Dann wurde das Modellpaket gelöscht und mit dem Repository synchronisiert. Es zeigt den gesamten Ordner/Paket an. Dann habe ich meinen Code aktualisiert.

Fügen Sie schließlich den alten Code-Commit in das SVN-Repository ein. Es funktioniert gut.

2
Kamalakar Dandu

Folgendes sollte eine gesperrte Arbeitskopie aufheben (getestet auf svn-Clientversion 1.6.11 und elipse-Version: Mars.2 Release (4.5.2))

schritt 1: (Wechseln Sie in das Arbeitskopienverzeichnis) $ cd working_copy_dir

schritt 2: (verbinden sie sich mit der svn sqlite datenbank) $ sqlite3 .svn/wc.db

schritt 3: (alle Datensätze aus der Tabelle WC_LOCK löschen) sqlite> aus WC_LOCK löschen;

schritt 4: (Verbindung mit der sqlite 3-Datenbank trennen) sqlite> ctrl + d

schritt 5: (von Eclipse) aus klicken Sie mit der rechten Maustaste auf Ihre Arbeitskopie und klicken Sie dann auf Team -> Refresh/Cleanup

2
SayeedSohail

Dies passierte mir, als ich ein Verzeichnis aus einem anderen Subversion-Projekt kopierte und versuchte, einen Commit auszuführen. Die Lösung bestand darin, den .svn-Director in dem Verzeichnis zu löschen, das ich festlegen wollte.

1

Lösung: Step1: Muss die Sperrdatei entfernen, die sich unter ".svn" versteckte Datei befindet . Step2: Falls keine "Sperre" vorhanden ist Wenn Sie dann "we.db" sehen, müssen Sie diese Datenbank öffnen und den Inhalt alleine aus den folgenden Tabellen löschen lock - wc_lock Step3 : Reinigen Sie Ihr Projekt Schritt 4: Versuchen Sie jetzt einen Commit auszuführen Schritt 5: Fertig.

0
R3ing

Diese Art von Problem kann auftreten, wenn Sie Dateien löschen oder verschieben, indem Sie Änderungen an Ihrer Verzeichnisstruktur vornehmen. Subversion prüft nur, ob Änderungen an bereits in Subversion hinzugefügten Dateien vorgenommen wurden, nicht an der Verzeichnisstruktur. Verwenden Sie anstelle der copy etc -Befehle des Betriebssystems svn copy usw.. Siehe http://svnbook.red-bean.com/de/1.7/svn.tour.cycle.html

Beim Festschreiben von Änderungen speichert svn zunächst eine "Zusammenfassung" der Änderungen in einer Aufgabenliste. Beim Ausführen der svn-Vorgänge in dieser Aufgabenliste wird die Datei gesperrt, um andere Änderungen zu verhindern, während diese svn-Vorgänge ausgeführt werden. Wenn die Aktion svn auf halbem Weg unterbrochen wird, beispielsweise durch einen Absturz, bleibt die Datei gesperrt, bis svn die Aktionen in der Aufgabenliste abschließen kann. Dies kann mit dem Befehl svn cleanup "reaktiviert" werden. Siehe http://svnbook.red-bean.com/de/1.7/svn.tour.cleanup.html

0
Chris