Stiamo utilizzando il server SVN 1.4 (credo) con i client sia come client della riga di comando o TortoiseSVN.Come posso determinare chi ha bloccato un file usando SVN?
risposta
Il client della riga di comando mostra il proprietario del blocco con il comando "svn info".
In TortoiseSVN, è possibile visualizzare il proprietario del blocco nel menu di scelta rapida "Proprietà" (scheda "sovversione").
Purtroppo, TortoiseSVN mi dice ** non ci sono blocchi ** quando guardo in quella pagina proprietà/sovversione. Ma mi dice ** _ I_ è bloccato _elsewhere _ ** quando provo a salvare il file. Ma non dirmi dove l'ho chiuso. PS: ho sempre bloccato (di proposito) in una directory di Windows. Speravo di trovare dov'era la serratura accidentale. –
@JesseChisholm: Non credo che Subversion registri la copia di lavoro che ha inviato il blocco. Ad ogni modo, se sei sicuro di non avere cambiamenti eccezionali, puoi semplicemente rompere il lucchetto. – sleske
alla fine, dovevo andare su ogni macchina che aveva una sandbox SVN e verificare se fosse stato creato un blocco accidentale lì 'svn status --show updates' finché non ho trovato la macchina che aveva il blocco non intenzionale. Quindi potrei rilasciare il blocco 'svn unlock offendingFile' e cancellare la situazione. –
Controllare la sezione red book "Rilevamento dei blocchi". Credo che contenga la risposta.
Utilizzando la funzionalità repo-browser di TortoiseSVN è presente una colonna di blocco che mostra l'utente che ha bloccato il file.
Fare clic con il tasto destro sulla copia di lavoro locale -> TortoiseSVN-> repo-browser.
Utilizzare svn status --show-updates
per rilevare i blocchi sui file. Nell'esempio seguente, Sally scopre che c'è un blocco su raisin.jpg.
$ whoami
sally
$ svn status --show-updates
M 23 bar.c
M O 32 raisin.jpg
* 72 foo.h
Status against revision: 105
Una volta che conosci il blocco, è possibile utilizzare svn -info
per scoprire che ha impostato il blocco. Si noti "Owner Lock" di seguito:
$ svn info http://svn.example.com/repos/project/raisin.jpg
Path: raisin.jpg
Name: raisin.jpg
URL: http://svn.example.com/repos/project/raisin.jpg
Repository UUID: edb2f264-5ef2-0310-a47a-87b0ce17a8ec
Revision: 105
Node Kind: file
Last Changed Author: sally
Last Changed Rev: 32
Last Changed Date: 2005-01-25 12:43:04 -0600 (Tue, 25 Jan 2005)
Lock Token: opaquelocktoken:fc2b4dee-98f9-0310-abf3-653ff3226e6b
Lock Owner: harry
Lock Created: 2005-02-16 13:29:18 -0500 (Wed, 16 Feb 2005)
Lock Comment (1 line):
Need to make a quick tweak to this image.
Questo non sembra funzionare con le versioni successive di Subversion (ad esempio 1.7). Quando eseguo info svn, non ricevo alcuna informazione sul proprietario del lucchetto. La mia soluzione (che non è l'ideale) è di eseguire 'svn status -u --xml filename' e analizzare l'XML risultante. – HulkHolden
Si noti che è necessario passare un URL anziché un percorso locale a 'svn info' per ottenere informazioni di blocco aggiornate. –
re: 'bisogno di passare un URL ...' fortunatamente, solo usando il percorso locale ti dirò l'URL completo. Un piccolo copia/incolla ... et viola! –
Il seguente script Python mostra tutte le serrature e chi li possiede:
#!/usr/bin/python
# coding=UTF-8
# This tool shows who owns the locks in a subversion repository
import sys
import subprocess
if len(sys.argv) > 1:
p = subprocess.Popen(['svn', 'status', '-u', sys.argv[1]], bufsize=1, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
else:
p = subprocess.Popen(['svn', 'status', '-u'], bufsize=1, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(so, se) = p.communicate() # start command
lines = [x[21:].strip() for x in so.split('\n') if len(x) > 5 and x[5] == 'K']
for line in lines:
p = subprocess.Popen(['svn', 'info', line], bufsize=1, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(so, se) = p.communicate()
details = [x[12:].strip() for x in so.split('\n') if x.startswith('Lock Owner')][0]
print '[%s] (%s)' % (details, line)
procedura per verificare:
Fare clic destro sul file/cartella su cui si desidera determinare il blocco
Vai a TortoiseSVN Opzioni >> Repo-browser
Una nuova finestra si aprirà e si otterrà una visualizzazione della tabella
colonna Blocca nella tabella mostrerà che ha il blocco
- Fare clic destro sul file, selezionare TortoiseSVN, quindi verificare le modifiche
- Fare clic su Controlla repository
- Scorri a destra per visualizzare la colonna Blocca
Risposta migliore. Grazie a Pradnya e Godsmith. – Gurusinghe
Avevo anche questo problema riguardante i file .aux. La soluzione/problema nel mio caso era che nessuna sottodirectory ha una profondità maggiore di 1 sono permesse. Se si desidera utilizzare questo, le sottodirectory nella cartella tmp devono essere esistenti. ad es. -> src -> Introduzione -> introduction.tex richiede -> tmp -> Introduzione -> introduction.aux ** * ***
La directory sottolineata deve essere esistente. Quindi, nel caso della gestione di sovversione, commettere anche la struttura di directory nella cartella tmp (senza i file * .aux).
- 1. Come posso determinare se un file è bloccato usando VBS?
- 2. Evento "modifica" slider jQuery: come determinare chi ha chiamato?
- 3. Scopri chi ha bloccato il file su un'unità di rete in C#
- 4. Come scoprire chi ha chiamato un metodo?
- 5. Come posso vedere chi ha attivato un'azione in Delphi?
- 6. Come ottenere un elenco di tutti i commit SVN in un repository e chi ha fatto cosa a quali file?
- 7. Come posso sapere chi ha spinto dentro Git?
- 8. Come posso determinare quale applicazione sta bloccando un file?
- 9. Come determinare l'età del file usando PHP?
- 10. Controlla se un file è già bloccato usando flock()?
- 11. Come posso creare un ramo in svn usando SharpSVN
- 12. In GDB, come scoprire chi ha memorizzato un indirizzo nell'heap?
- 13. Come posso determinare quale URL viene bloccato da App Transport Security?
- 14. Come posso scaricare un file usando window.fetch?
- 15. Come posso determinare i tipi di proprietà usando la riflessione?
- 16. Come posso ottenere un elenco di file modificati in svn?
- 17. Come posso sapere a chi vim usare?
- 18. SVN esterni repo "è già bloccato" aggiornata
- 19. Come posso determinare l'intensità del suono di un file WAV?
- 20. Come posso determinare se un file è vuoto?
- 21. Normalizzazione del database: chi ha ragione?
- 22. File bloccato da quale processo?
- 23. Determinare quale utente ha cancellato un database SQL Server?
- 24. Come accedere ai file in SVN usando java
- 25. Come determinare se svn: mergeinfo è corrotto e come posso risolvere il problema?
- 26. Vedere chi ha eliminato il tag git
- 27. Come posso determinare se un oggetto o un riferimento ha una coercizione di stringa valida?
- 28. git: chi ha inserito il gancio di post-ricezione
- 29. C++ determinare se un contenitore ha :: find()
- 30. In starteam, come posso sapere quando un file è stato cancellato e da chi?
Intendevi TortoiseSVN? –