Domanda

Sto cercando di trovare un modo per rimuovere i blocchi di zombie utilizzando gli strumenti della riga di comando di Subversion. L'obiettivo finale è quello di fare questo da uno script gancio, ma non sono stato in grado di elaborare la riga di comando da utilizzare quando si dispone solo di un percorso di repository fisico. (Usando rmlocks svnadmin sembra funzionare solo per serrature che esistono nella revisione HEAD.)

Idealmente, mi piacerebbe farlo tramite lo script di post-commit hook utilizzando gli strumenti della riga di comando. (Sono consapevole dello script python per questo scopo, ma preferisco non installare python su quel server per questo uso singola.) Siamo un negozio di NET, in modo da creare uno strumento con la libreria SharpSVN è anche un possibilità, ma l'unica possibilità di sblocco sembra che vi sia nella classe SVNClient.

Quindi è davvero due domande: C'è un modo per farlo con gli strumenti della riga di comando? In caso contrario, c'è un modo per farlo da SharpSVN? (O forse un'altra libreria?)

== Aggiornamento 3 dicembre 2012 ==

ho dovuto rivisitare questo problema da poco e ho scoperto questa domanda è ancora disegno di traffico. Lo script python menzionato nella domanda originale e la risposta di Don da allora ha spostato a: http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/remove-zombie-locks.py (presumo che è quello maggior parte delle persone sono alla ricerca di.)

Per ironia della sorte, anche se il repository è spostato a Linux, stiamo usando la soluzione C.

È stato utile?

Soluzione 2

Sembra che la risposta è "Non si può arrivare da qui".

  • svnadmin fornisce una riga di comando per la rimozione di blocchi con un percorso di repository, ma non sembra funzionare con le serrature zombie.
  • SharpSVN è soprattutto sul lato client; Ha un paio di metodi per il collegamento con un percorso di repository, ma quelli (per la documentazione) sono per lo più per l'uso in unit test della biblioteca.

Quindi, riscrivere lo script python in C utilizzando la libreria di Subversion API.

Altri suggerimenti

C'è un Python di script (si fa riferimento qui: http://subversion.tigris.org /ds/viewMessage.do?dsForumId=1065&dsMessageId=2369399 ). Mi piacerebbe usare sia che, o traduco a .NET se è necessario.

Se si conosce il percorso del repository al file eliminato che è zombie-bloccato, è così semplice che non ci potevo credere in un primo momento:

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

Questo funziona anche se il file eliminato lo fa (per definizione) non esiste nella testa del repository. No revisione peg richiesto né permesso. L'opzione force è necessaria solo se il blocco è da un altro utente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top