Question

Je suis en train de trouver un moyen de supprimer les verrous de zombies à l'aide des outils de ligne de commande de Subversion. L'objectif final est de le faire à partir d'un script crochet, mais je n'ai pas été en mesure de travailler sur la ligne de commande à utiliser lorsque vous avez seulement un chemin de dépôt physique. (L'utilisation rmlocks svnadmin semble ne fonctionner que pour les serrures qui existent dans la révision HEAD.)

Idéalement, je voudrais le faire via le script hook post-commit à l'aide des outils de ligne de commande. (Je suis au courant du script python à cet effet, mais nous préférerions ne pas installer python sur ce serveur pour cet usage unique.) Nous sommes un magasin .NET, créant ainsi un outil avec la bibliothèque SharpSVN est aussi un possibilité, mais la seule capacité de déverrouillage apparaît qu'il y ait dans la classe SVNClient.

Il est donc vraiment deux questions: Est-il possible de le faire avec les outils de ligne de commande? Sinon, est-il un moyen de le faire à partir SharpSVN? (Ou peut-être une autre bibliothèque?)

== Mise à jour le 3 décembre 2012 ==

J'ai dû revenir sur ce problème récemment et découvert cette question attire toujours le trafic. Le script python mentionné dans la question initiale et la réponse de Don a depuis déménagé à: http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/remove-zombie-locks.py (Je suppose que ce que la plupart des gens recherchent.)

Ironie du sort, même si le dépôt est déplacé vers Linux, nous utilisons la solution C.

Était-ce utile?

La solution 2

Il semble que la réponse est « Vous ne pouvez pas y arriver d'ici. »

  • svnadmin fournit une ligne de commande pour supprimer les verrous avec un chemin de référentiel, mais il ne semble pas fonctionner avec des serrures de zombies.
  • SharpSVN est principalement côté client; elle a quelques méthodes pour la connexion avec un chemin de référentiel, mais ceux (par les médecins) sont la plupart du temps pour une utilisation dans les tests unitaires de la bibliothèque.

réécriture Donc le script python en C en utilisant la bibliothèque API Subversion.

Autres conseils

Il y a un Python de script (référencé ici: http://subversion.tigris.org /ds/viewMessage.do?dsForumId=1065&dsMessageId=2369399 ). Je soit utiliser que, ou traduis à .NET si vous avez besoin de.

Si vous connaissez le chemin du référentiel du fichier supprimé qui est zombie-verrouillé, il est si simple que je ne pouvais pas le croire au premier abord:

svn unlock --force https://path/to/my/file

Cela fonctionne même si le fichier supprimé ne (par définition) ne pas exister dans la tête du référentiel. Aucune révision de cheville nécessaire ni permis. L'option force est nécessaire que si la serrure est d'un autre utilisateur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top