Qual è il modo migliore per vedere quali file sono bloccati in Subversion?
-
08-07-2019 - |
Domanda
Finalmente sono riuscito a far passare il mio gruppo da SourceSafe a Subversion. Sfortunatamente, il mio manager vuole ancora usare blocchi esclusivi su ogni singolo file. Quindi ho impostato la proprietà svn: needs-lock su ogni file e ho creato un hook pre-commit per assicurarsi che la proprietà rimanga impostata.
Stiamo eseguendo Subversion su un server Linux. Molti di noi usano macchine Windows e alcuni usano Mac. Stiamo utilizzando vari client SVN (TortoiseSVN, SmartSVN, Subclipse, ecc.).
Ciò di cui abbiamo ora bisogno è un metodo buono / semplice per vedere tutti i file che sono attualmente bloccati in tutto il repository (e chi li ha bloccati). Ho cercato un po 'in Tortoise e Subclipse, ma non ho trovato quello che cercavo. I nostri progetti hanno molte sottodirectory che sono profonde a più livelli, quindi sarebbe troppo tempo per esaminare ogni singola directory.
Quello che vorrei è un singolo report che posso eseguire che elenca tutto ciò che è attualmente bloccato e chi lo ha bloccato. Qual è il modo migliore per ottenere questo tipo di informazioni?
Soluzione
Quello che stai cercando è svnadmin lslocks
comando.
Ho installato questo programma perché conserviamo alcuni documenti Word nel nostro repository Subversion (con svn: needs-lock
). Ho creato un lavoro cron che ogni giorno controlla l'elenco dei blocchi e invia un rapporto di tutti i blocchi più vecchi di 7 giorni a tutto il team. In questo modo possiamo dire chi è stato allentato e seduto su una copia bloccata di un documento per lungo tempo.
Altri suggerimenti
Questa potrebbe non essere la risposta che stai cercando, ma dovresti provare a convincere il gestore che i blocchi non sono in realtà le migliori pratiche di sviluppo. Ci sono molte cose scritte su questo argomento, quindi non ripeterò tutto qui.
Quando passi da un ambiente di blocco a uno senza blocchi di cassa forzati, all'inizio pensi che porterà al caos, ma in realtà non lo fa. SVN è bravo a unire le modifiche quando due persone stanno lavorando sullo stesso file e, anche se si verificano conflitti, non è così male risolverle.
Molto meglio che aspettare il ragazzo che è andato a pranzo con un file critico estratto, o peggio ancora, è andato in vacanza.
Per vedere quali blocchi sono bloccati da te e dagli altri, puoi usare TortoiseSVN ? Verifica modifiche .... I token di blocco mantenuti localmente vengono visualizzati immediatamente. Per verificare la presenza di blocchi detenuti da altri (e per vedere se alcuni dei blocchi sono rotti o rubati) è necessario fare clic su Controlla repository.
Puoi scoprire i blocchi da un checkout locale usando svn status --show-updates
che metterà un O
prima di tutti i file che sono bloccati sul server.
per es.
$ svn status --show-updates
O 279532 LockedFile
? UncommittedFile
M 279532 ModifiedFile
vedi the svnbook per maggiori dettagli