Entfernen von Zombie Schlösser in Subversion
Frage
Ich versuche, einen Weg zu finden, Zombie-Sperren unter Verwendung der Subversion Kommandozeilen-Tools zu entfernen. Das Endziel ist dies von einem Hook-Skript zu tun, aber ich habe nicht die Befehlszeile Gebrauch zu arbeiten in der Lage, wenn man nur einen physischen Repository-Pfad hat. (Mit svnadmin rmlocks scheint nur für Schlösser an der Arbeit, die in der HEAD-Revision vorhanden sein.)
Im Idealfall würde Ich mag, dies zu tun über den post-commit Hook-Skript der Kommandozeilen-Tools verwenden. (Ich bin mir bewusst, das Python-Skripts für diesen Zweck, aber wir würden es vorziehen, nicht Python für diesen einmaligen Gebrauch auf den Server zu installieren.) Wir sind ein .NET-Shop, so ein Werkzeug mit der SharpSvn Bibliothek zu schaffen ist auch ein Möglichkeit, aber die einzige Unlock-Fähigkeit scheint es in der SVNClient Klasse zu sein.
So ist es wirklich zwei Fragen: Gibt es eine Möglichkeit, diese Werkzeuge mit der Befehlszeile zu tun? Wenn nicht, gibt es eine Möglichkeit, es von SharpSvn zu tun? (Oder vielleicht eine andere Bibliothek?)
==-Update 3. Dezember 2012 ==
Ich habe dieses Problem vor kurzem nochmals zu besuchen habe und entdecken diese Frage immer noch Verkehr Zeichnung wird. Der Python-Skript in der ursprünglichen Frage und Don Antwort erwähnt ist seit umgezogen: http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/remove-zombie-locks.py (ich nehme an das ist, was die meisten Leute suchen.)
Ironischerweise, obwohl das Repository Linux bewegt hat, wir verwenden die C-Lösung.
Lösung 2
Es sieht aus wie die Antwort lautet: „Du nicht, dass es von hier bekommen.“
- svnadmin stellt eine Befehlszeile für Schlösser mit einem Repository-Pfad zu entfernen, aber es scheint nicht mit Zombie-Sperren zu arbeiten.
- SharpSvn ist in erster Linie die clientseitige; es hat ein paar Methoden, um mit einem Repository-Pfad verbindet, aber die (pro Docs) ist vor allem für den Einsatz in der Unit-Tests der Bibliothek.
So den Python-Skript in C Umschreiben der Subversion-API-Bibliothek.
Andere Tipps
Es gibt eine Python Skript (referenzierten hier: http://subversion.tigris.org /ds/viewMessage.do?dsForumId=1065&dsMessageId=2369399 ). Ich würde, dass entweder verwenden oder zu .NET übersetzen, wenn Sie benötigt werden.
Wenn Sie den Repository-Pfad auf die gelöschte Datei kennen, den Zombie-gesperrt ist, ist es so einfach, dass ich es zuerst nicht glauben konnte:
svn unlock --force https://path/to/my/file
Das funktioniert auch wenn die gelöschte Datei wird (per Definition) gibt es nicht in den Kopf des Repository. Keine Peg-Revision erforderlich noch zulässig. Die force
Option ist nur dann erforderlich, wenn das Schloss von einem anderen Benutzer ist.