Fehler beim Sperren der Arbeitskopie im Schildkröten-SVN während des Festschreibens

94

Ich verwende Tortoise SVN, um Änderungen am Repository auf dem Server zu aktualisieren und festzuschreiben, wenn ich Änderungen an meiner Arbeitskopie vornehme. Aber ab einigen Tagen kann ich die Änderungen nicht mehr festschreiben und erhalte die folgende Fehlermeldung, wenn ich versuche, sie festzuschreiben.

Working copy 'C:\Program Files\EasyPHP\www\project\php' locked.
'C:\Program Files\EasyPHP\www\project' is already locked.

Ich habe versucht, den Ordner zu entsperren, indem ich mit der rechten Maustaste darauf geklickt und Tortoise SVN> Lock sperren ausgewählt habe

Es gibt nichts zu entsperren. Keine Datei hat eine Sperre in dieser Arbeitskopie

Was könnte das Problem sein?

Anil
quelle

Antworten:

232

Kein Problem ... versuchen Sie dies:

  • Wechseln Sie zum SVN-Ordner der obersten Ebene.
  • Klicken Sie mit der rechten Maustaste auf den Ordner (der Ihre SVN-Dateien enthält)> TortoiseSVN> CleanUp

Dies wird sicherlich Ihr Problem lösen. Ich habe das viel Zeit gemacht ... :)

Hinweis. Stellen Sie sicher, dass im Dialogfeld "Bereinigen" die Option "Sperren aufheben" ausgewählt ist.

MicroEyes
quelle
danke @MicroEyes ... jetzt kann ich mich verpflichten. Ich habe nur einen kleinen Zweifel. Sollte ich nach dem Ändern einer Datei zuerst die Datei festschreiben und dann aktualisieren (in Arbeitskopie) oder aktualisieren und dann festschreiben?
Anil
2
Folgen Sie immer dem Update und schreiben Sie es fest. Andernfalls erhalten Sie eine Nachricht zum Aktualisieren von TortoiseSVN, da Ihre Versionskopie älter ist als auf dem SVN-Server gespeichert. In jedem Fall müssen Sie also aktualisieren und festschreiben.
MicroEyes
1
Ja, das hat mein Problem im Zusammenhang mit der Aktualisierung meiner aktuellen Kopie auf SVN-Revision gelöst.
Jayesh Bhoi
Ich habe gerade Dateien in SVN hinzugefügt und versucht, es festzuschreiben, aber ich habe den gleichen Fehler. Ich habe den Befehl cleanUp ausprobiert, kann dieses Problem jedoch nicht lösen.
Ashok Chandrapal
Ich erlebe das sehr. Kann ich die Zeit reduzieren, die svn benötigt, bevor diese Fehlermeldung angezeigt wird (derzeit fünf bis zehn Sekunden)? So kann ich früher mit der Bereinigung beginnen.
Nicht-Benutzer
15

Die akzeptierte Antwort hat bei mir nicht funktioniert. Um dieses Problem zu beheben, musste ich mit der rechten Maustaste auf die gesperrte Datei klicken und auswählen repo-browser. Dadurch wurde ein Popup mit den Dateien geöffnet, die sich auf dem SVN-Server befinden. Ich habe dann mit der rechten Maustaste auf die gesperrte Datei geklickt und ausgewählt break lock.

Als ich den Repository-Browser schloss, konnte ich mich im Explorer endlich festlegen!

Johann
quelle
Sie müssen nur sicherstellen, dass im Dialogfeld "Bereinigen" die Option "Sperren aufheben" ausgewählt ist. Ich denke, es ist standardmäßig ausgewählt (und deshalb wurde dies in der ursprünglichen Antwort nicht erwähnt).
Nux
12
  1. Klicken Sie mit der rechten Maustaste auf den Ordner.
  2. TortoiseSVN-> Auf Änderungen prüfen.
  3. Klicken Sie auf die Schaltfläche Repository prüfen.
  4. Unterbrechen Sie die Sperre für alle zurückgegebenen Dateien.
Elsabe
quelle
3

Ich bin auch auf dieses Problem gestoßen. Für einige möchte ich darauf hinweisen, dass, wenn es gesperrt ist, mit Ihrem Team prüfen. Jemand im Team hat möglicherweise einige Dinge gesperrt, weil er daran arbeitet (dies ermöglicht Entwicklern, an Dingen zu arbeiten, ohne dass andere hereinkommen und versuchen, an denselben Inhalten zu arbeiten). Wenn dies der Fall ist, kann das Aufheben der Sperre und das anschließende Aktualisieren möglicherweise Daten für den Entwickler verlieren, der sie gesperrt hat.

Vor diesem Hintergrund war ich besorgt, dass die Option "Bereinigen" möglicherweise meine Arbeitskopie ändern oder Informationen aus der Repo-Ebene von Subversion entfernen würde. Das ist nicht der Fall. Die Antwort hat bei mir funktioniert. Meins wurde gesperrt, als ich während eines Updates auf Abbrechen klickte. Am Ende habe ich einige unserer Zweige gezogen und ich brauchte das Zeug nicht, also drückte ich auf Abbrechen. Meine Arbeitskopie wurde gesperrt. Ich konnte keine Dokumente finden, die als "gesperrt" angezeigt wurden, als ich den Befehl "Freigabesperre" verwendete. Dies hat mich verwirrt und nach einigem schnellen Lesen (und diesem Thread) habe ich versucht, den Befehl "Aufräumen" auszuführen. Nach einer Bereinigung wurde mein Problem behoben und nichts wurde mehr gesperrt.

Quelle: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Eric
quelle
2

Es gibt mehrere Bedeutungen von "Sperre" in SVN und einige dieser Antworten, die von "Sperre aufheben" oder einem Teamkollegen, der eine Sperre hält, sprechen, verwenden nicht die relevante Bedeutung für die ursprüngliche Frage. Diese Frage befasst sich mit "Sperren von Arbeitskopien" (dh sie sind vollständig lokal für die Arbeitskopie auf Ihrem Computer und haben nichts mit Ihnen oder Teammitgliedern zu tun, die eine Datei sperren oder auschecken). Die von MicroEyes akzeptierte Antwort bezieht sich auf die korrekte Verwendung und ist in diesem Fall die beste Option.

Wenn eine Bereinigung nicht funktioniert, müssen Sie möglicherweise eine neue Arbeitskopie des Projekts auschecken. Wenn Sie geänderte, nicht festgeschriebene Dateien haben, müssen Sie diese in die neue Arbeitskopie kopieren, damit Sie Ihre Änderungen nicht verlieren.

Auf dieser Seite in den SVO-Dokumenten von Tortoise finden Sie eine Beschreibung der drei Verwendungszwecke von "lock": http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-locking.html

Auszug (Hervorhebung hinzugefügt):

Die drei Bedeutungen von "Lock"

In diesem Abschnitt und fast überall in diesem Buch beschreiben die Wörter "Sperren" und "Sperren" einen Mechanismus zum gegenseitigen Ausschluss zwischen Benutzern, um Konflikte zu vermeiden. Leider gibt es zwei andere Arten von „Sperren“, mit denen sich Subversion und damit dieses Buch manchmal befassen müssen.

Die zweite Option sind Sperren für Arbeitskopien , die von Subversion intern verwendet werden, um Konflikte zwischen mehreren Subversion-Clients zu vermeiden, die mit derselben Arbeitskopie arbeiten. Normalerweise erhalten Sie diese Sperren immer dann, wenn ein Befehl wie update / commit / ... aufgrund eines Fehlers unterbrochen wird. Diese Sperren können durch Ausführen des Bereinigungsbefehls für die Arbeitskopie entfernt werden, wie im Abschnitt „Bereinigung“ beschrieben.

...

G. Stevens
quelle
2

Ich hatte keine Ahnung, welche Datei die Sperre hatte. Was ich also tat, um dieses Problem zu lösen, war:

  1. Ging zum Ordner der höchsten Ebene
  2. Klicken Sie auf Bereinigen und aktivieren Sie das Kontrollkästchen Bereinigungsmethoden -> Sperren aufheben

Das hat bei mir funktioniert.

cosmoto91
quelle
1

Ich hatte verschiedene Dinge ausprobiert, einschließlich "Aufräumen" in unteren Unterverzeichnissen. Schließlich habe ich versucht, den Ordner der obersten Ebene zu aktualisieren. Nichts. Dann habe ich den Tipp "Aufräumen der obersten Ebene" gelesen. Das habe ich versucht. Der Aufräumteil war erfolgreich, aber das Schloss blieb. Meine Lösung bestand darin , zur obersten Ebene zurückzukehren, aufzuräumen und dann jeden roten (!) Ordner zu bereinigen, in den ich einen Drilldown durchführen konnte . Nachdem alles "aufgeräumt" war, funktionierte das Update einwandfrei. Der Tipp "Break Lock" sieht ebenfalls gut aus, mit der Ausnahme, dass jemand in Ihrem Team möglicherweise eine legitime Sperre für Dinge hat.

Jim
quelle
0

Ich habe es geschafft, mich aus einer Datei in svn auszusperren - ich weiß nicht wie - aber als ich versuchte, die Sperre (erneut) zu erhalten (Tortoise zeigte die Option "Get Lock" für die Datei an), beschwerte sie sich, dass sie bereits die hatte sperren. Ich habe versucht, die Datei zu löschen und den Verzeichniswechsel festzuschreiben - das gleiche Ergebnis. Ich habe CleanUp ausprobiert (einschließlich des Aktualisierens des Overlays), aber das ist auch fehlgeschlagen.

Die Lösung bestand darin, in den Tortoise-Repo-Browser zu gehen, die Datei zu finden und die Break-Lock- Funktion zu verwenden.

user1844643
quelle
0

Wenn dies ( https://stackoverflow.com/a/11764922/3045875 ) nicht hilft: Überprüfen Sie, ob ein anderes SVN-Tool stört, und schließen Sie das Tool. Wir hatten nur ein paar Stunden Probleme beim Zusammenführen mit TortoiseSVN und hatten Dutzende solcher Sperrfehler. Schließlich stellten wir fest, dass die Integration von Matlabs SVN stört, und nach dem Schließen hat alles geklappt.

RMK
quelle
-1

Windows-Lösung:

https://sourceforge.net/projects/win32svn/

1. Laden Sie es herunter und fügen Sie es dem Systempfad hinzu.

2. Gehen Sie zum Arbeitsverzeichnis und führen Sie "svn clean" und "svn update" in cmd aus.

Xiaoliuzi
quelle