2016-07-11 4 views
0

Ich benutze git-tf, um zu einem TFS-Projekt auf lin zu schieben. Manchmal, wenn ich versuche, ein oder mehr Commits in TFS zu überprüfen, erhalte ich eine Meldung wie diese:git-tf sagt über Linux mich "Konnte nicht sperren" beim Einchecken; wie kann ich es reparieren?

TFS Connecting ... Einchecken zu $ ​​/ MyProject: 0% git-tf: Könnte nicht Sperre $/MyProject

Was bedeutet das? Was hält mich davon ab, zu sperren? Und wie kann ich das beheben?

Ich habe herausgefunden, dass ein Arbeitsbereich das Projekt gesperrt hat, aber ich weiß nicht, welches, und ich weiß nicht, wie ich das wiederherstellen soll.

Eine Suche im Internet weist mich auf alle Arten von Windows-abhängigen Fixes hin, aber das hilft mir nicht auf einem Linux-System.

Also, obwohl diese Frage ein duplicate scheint, ist es mehr dazu gedacht, wie das Problem unter Linux zu beheben.

Antwort

0

Die erste Sache, die gelöst werden muss, ist alle gesperrten Dateien unter $/MyProject herauszufinden, dann entsperren sie.

Es gibt mehrere Tools auf Windows-Plattform, wie TFS Powertool und TFS SideKicks, wie Sie in anderen Fällen gelesen haben.

Ich kann keine vorhandenen Tools unter Linux finden, um alle gesperrten Dateien zu erhalten, also wäre tfs command lines eine Lösung. Sie können Befehl Status verwenden, um alle ausgecheckt Dateien unter $/MyProject aufzulisten, sollte der Befehl ähnlich sein (ich habe kein Linux-System zu testen, müssen Sie auf Ihrer Seite überprüfen):

tf status $/MyProject /user:* /recursive 

Sobald Sie die ausgecheckten Dateien gefunden haben, verwenden Sie Lock-Befehltf lock /lock:none, um die Dateien zu entsperren.

+0

Danke, aber anscheinend waren die Dateien in einem Arbeitsbereich gesperrt, der entfernt worden war. Für git-tf kann man den Arbeitsbereich sicher entfernen, da dies die Funktion nicht beeinträchtigt. Die temporären Arbeitsbereiche werden nur beim Commit (und vielleicht Pull) initiiert. Diese Arbeitsbereiche werden anschließend entfernt. –

0

Schließlich habe ich herausgefunden, dass dies behoben werden kann, indem der Arbeitsbereich, der das Repository gesperrt hat, entfernt wird.

tf workspaces -remove:myLockedWorkSpaceName 

Aber danach war es noch aus der Ferne gesperrt. Schließlich musste ich über Visual Studio von einer Windows-Maschine mit dem Repository verbinden.

Es:

File-> Quelle Control-> Advanced-> Workspaces

Toggle "Remote Workspaces"

die git-tf wählen - ##### Arbeitsbereich (e) und entferne sie.

Danach funktioniert alles wieder.

Irgendwie weiß ich immer noch nicht, wie man das von einer LINUX-Kommandozeile aus macht.

Verwandte Themen