Der Ordner ist gesperrt und ich kann ihn nicht entsperren

108

Wenn ich versuche, Code aus einem Projekt zu aktualisieren oder festzuschreiben, wird mir mitgeteilt, dass der Ordner gesperrt ist. Wenn ich versuche, die Sperre aufzuheben, heißt es, dass in diesem Arbeitsbereich nichts zu entsperren ist.

Was bedeutet das? Warum ich das Projekt nicht aktualisieren, festschreiben oder sogar bereinigen kann.

Iyad Al aqel
quelle
Welche Version von svn verwenden Sie?
Chriseyre2000
Assembla für ein Repository, Tourtise SVN 1.7
Iyad Al aqel
Haben Sie also in jedem Verzeichnis einen .svn-Ordner oder nur das Stammverzeichnis?
Chriseyre2000
Haben Sie versucht, das Projekt erneut in einer separaten Arbeitskopie auszuchecken?
Bernard
Ja, es funktioniert, wenn ich es in einem anderen Ordner überprüfe, aber die Datenbank nicht geöffnet wird
Iyad Al aqel

Antworten:

161

Klicken Sie mit der rechten Maustaste auf Ihren Subversion-Arbeitsverzeichnisordner und wählen Sie TortoiseSVN-> Clean Up aus dem Kontextmenü. Dies führt den Weg durch Ihr Arbeitsverzeichnis und bereinigt alle unvollständigen Aktionen. Entfernen Sie die lokalen Sperren (was sich von der Subversion-Sperre einer Datei im Repository unterscheidet, die alle über die Sperre informiert).

Wenn dies nicht funktioniert, prüfen Sie, ob Sie die Namen der Dateien finden, die geändert, aber noch nicht festgeschrieben wurden, speichern Sie sie und wiederholen Sie die Kaufabwicklung.

David W.
quelle
28
Ich hatte dieses Problem und die Bereinigung funktionierte nicht (die Bereinigung konnte aufgrund der lokalen Sperren nicht durchgeführt werden), aber das Aufrufen des übergeordneten Ordners (der ebenfalls unter Versionskontrolle stand) und die Bereinigung dort haben das Problem behoben.
Malvineous
2
Sie können die lokalen Sperren aufheben, indem Sie die Break locksOption aktivieren .
Aagjalpankaj
1
@ Malvineous 'Kommentar ist wertvoll. Sollte dies als Antwort posten.
Lazy Ninja
16

Wenn die Datei von Ihnen selbst gesperrt wurde (dasselbe SVN-Konto), können Sie die folgenden Schritte ausführen:

Klicken Sie mit der rechten Maustaste auf die gesperrte Datei oder den gesperrten Ordner, wählen Sie TortoiseSVN-> Sperre abrufen ... und aktivieren Sie " [] Sperren stehlen " in der unteren linken Ecke des Dialogfelds. Klicken Sie auf "OK". Wenn es erfolgreich abgeschlossen wurde, ist das in Ordnung. Wenn Sie erneut mit der rechten Maustaste auf die Datei klicken, wird TortoiseSVN-> Lock sperren ... angezeigt. Klicken Sie zum Entsperren auf.

cuixiping
quelle
12

Verwenden Sie einfach die Befehlszeile svn, um die lokalen Ordner zu entsperren svn cleanup.

Vor:

# svn commit -m "fixing #1234"

verpflichten

# svn st

Vor

# svn cleanup

Nach dem:

# svn st

nach dem

# svn commit -m "fixing #1234"

after2

Sebas
quelle
10

Für alle, die dieses Problem noch haben ( Fehler: Arbeitskopie '{DIR}' gesperrt. ), Habe ich Ihre Lösung:

Ich habe festgestellt, dass beim Absturz eines TortoiseSVN-Fensters eine TSVNCache.exe verbleibt, die noch einige Handles für Ihre Arbeitskopie enthält und die gesperrten Sperrprobleme verursacht (und auch verhindert, dass Clean Up seinen Job ausführt).

Um dies zu beheben:

Entweder

1a) Verwenden Sie Process Explorer oder ähnliches, um die Handles von TSVNCache.exe zu löschen

1b) .. Oder noch einfacher, verwenden Sie einfach den Task-Manager, um TSVNCache.exe zu beenden

Dann

2) Klicken Sie mit der rechten Maustaste -> TortoiseSVN -> Aufräumen. Es muss nur "Status der Arbeitskopie bereinigen" aktiviert werden.

Von dort aus viel Spaß beim Aktualisieren / Festschreiben. Sie können das Sperrverhalten reproduzieren, indem Sie das SVN-Update durchführen und dann den TortoiseProc.exe-Prozess schnell beenden, bevor das Update abgeschlossen ist.

Jonathon J Howey
quelle
8

Dies war das erste Mal, dass ich dieses Problem hatte. Ich habe sogar versucht, den PC ohne Wirkung neu zu starten. Dies löst mein Problem:

Lösung für mich:

  1. Klicken Sie mit der rechten Maustaste auf Projektarbeitsverzeichnis.
  2. Navigieren Sie zu TortoiseSVN .
  3. Navigieren Sie zum Aufräumen .
  4. Belassen Sie alle Standardoptionen und aktivieren Sie die Option Sperren aufheben
  5. Klicken Sie auf OK

Das funktioniert bei mir. Ich konnte Änderungen vornehmen.

WilliamK
quelle
1
Durch Aktivieren des Kontrollkästchens Break Locks wird mein Problem behoben.
Banketeshvar Narayan
Dies ist die perfekte Antwort, nach der ich gesucht habe. Vielen Dank
vamshi krishna kurella
Dies sollte die richtige Antwort sein. Praktisch, einfach und direkt auf den Punkt!
Oana-Elena Danescu
3

Verwenden Sie die --forceOption, um eine Datei in Ihrer Arbeitskopie an der Eingabeaufforderung zu entsperren, die derzeit von einem anderen Benutzer gesperrt ist .

$ svn unlock --force tree.jpg

manav mn
quelle
Was ist, wenn ich ein Verzeichnis entsperren möchte?
IgorGanapolsky
@IgorGanapolsky Geben Sie den Verzeichnisnamen anstelle des Dateinamens im obigen Befehl an
manav mn
@IgorGanapolsky Welche Fehlermeldung erhalten Sie? Lassen Sie mich überprüfen
Manav Mn
Der Knoten ist keine Datei !
IgorGanapolsky
3

Ich hatte dieses Problem und habe die folgenden Schritte ausgeführt, um es zu beheben:

  1. Wechseln Sie zum übergeordneten Ordner anstelle des untergeordneten Ordners
  2. Wählen Sie SVN-Bereinigung
  3. Klicken Sie auf OK.

Führen Sie diesen Schritt für den übergeordneten Ordner anstelle des untergeordneten Ordners aus!

Es hat bei mir funktioniert!

Akhilesh
quelle
1

Ich habe einen Ordner um eine Ebene nach oben und in einen anderen Ordner verschoben. Mein Fehler war das Verschieben aus dem übergeordneten Ordner.

Schlechtes Beispiel:

pwd -> C:\Repo\ParentDir\
svn move ./DirtoCopy ../AnotherDir

SVN muss das übergeordnete Verzeichnis mit den Informationen zu gelöschten Ordnern aktualisieren.
Sie müssen dies vom gemeinsamen Stammverzeichnis der Quell- und Zielordner aus tun oder vollständige Pfade verwenden.

Gutes Beispiel:

svn move C:\Repo\ParentDir\DirtoCopy C:\Repo\NewLocation
rasky74
quelle
1

Ich hatte dieses Problem, bei dem ich eine Datei auf der Clientseite nicht entsperren konnte. Ich beschloss, auf die viel einfachere Seite zu gehen.

Auf dem SVN-Server:

Suchen Sie Schlösser

 svnadmin lslocks /root/of/repo
 (in my case it was var/www/svn/[name of Company])

 You can add a specific path to this by svnadmin lslocks /root/of/repo "path/to/file"

Schloss entfernen

 svnadmin rmlocks /root/of/repo “path/to/file” 

Das ist es!

Stapler
quelle
0

Lösung:

  1. Klicken Sie mit der rechten Maustaste auf Projektarbeitsverzeichnis.
  2. Navigieren Sie zu TortoiseSVN.
  3. Navigieren Sie zum Aufräumen.
  4. Wählen Sie Status der Arbeitskopie bereinigen (Häkchen setzen).
  5. OK klicken
  6. Wiederholen Sie die Schritte 1 und 2 und navigieren Sie dann, um die Sperre aufzuheben.
  7. Klicken Sie auf OK. Ihre Projektsperre wird geöffnet.
Vinayak
quelle
0

Zusätzlich zur Antwort von David M während der Bereinigung -> Aktivieren Sie die Option "Sperren aufheben". Dadurch wird die Freigabe von Sperren sichergestellt. Dann svn update. Das hat bei mir funktioniert.

Vinnu
quelle
0

So entsperren Sie ein blockiertes Dokument: 1. Klicken Sie mit der rechten Maustaste auf -> Sperren. 2. Aktivieren Sie das Kontrollkästchen "Sperren stehlen". 2. Lösen Sie die Sperre

user7257040
quelle
0

Ich recherchiere viel zu diesem Problem, aber keine Lösung behebt mein Problem, bis ich Folgendes versuche:

Mein Repo-Ordner wird für eine virtuelle Windows XP-Maschine freigegeben, daher führe ich die Bereinigung von der VM aus und führe dann SVN UPDATE vom Host aus.

Es hat bei mir funktioniert.

Grüße aus Costa Rica.

Luisca94
quelle
0

Ich konnte dieses Problem auf meinem Computer beheben, indem ich Ordner umbenannte, um den Ordnerpfad zu verkleinern.

rsivakumar
quelle
-1

Ich hatte dies passiert, nachdem Tortoise beim Versuch, Ordner zu aktualisieren, beschädigt wurde und abstürzte. Am Ende habe ich Tortoise neu installiert, aber das Geisterschloss war immer noch vorhanden. Von dort musste ich den Ordner löschen und eine neue Kaufabwicklung durchführen. Offensichtlich hatte ich großes Glück, dass ich zu diesem Zeitpunkt keine neuen Änderungen vornehmen musste. Jedenfalls keine guten Nachrichten, und wenn jemand eine bessere Lösung hat, würde ich sie gerne selbst hören. Auch die Verwendung von "Break Lock", dh das Entsperren mit der Force-Option, hat nichts geändert.

JMM
quelle
-1

Aufräumen, alle aktivieren Kontrollkästchen => Das funktioniert bei mir

Ắc Thắng Nguyễn
quelle
Gleich wie ắc Thắng Nguyễn. Führen Sie eine "robuste" Reinigung durch.
-1

Nach diesen Vorgängen ist dieses Problem aufgetreten:

  1. Ordner sperren
  2. Dateien ändern
  3. Dateien entfernen und Ordner aktualisieren -> neue Dateien heruntergeladen
  4. Versuchen Sie, die Sperre festzuschreiben oder aufzuheben

Ich habe das Problem endlich gelöst, indem ich die Sperre erneut erzwungen habe: TortoiseSVN -> Sperre abrufen -> "Sperre stehlen" aktivieren und dann die Sperre festschreiben oder aufheben.

med_alpa
quelle