2009-05-12 17 views

risposta

16

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").

+1

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. –

+0

@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

+0

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. –

0

Controllare la sezione red book "Rilevamento dei blocchi". Credo che contenga la risposta.

12

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.

26

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. 
+2

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

+6

Si noti che è necessario passare un URL anziché un percorso locale a 'svn info' per ottenere informazioni di blocco aggiornate. –

+1

re: 'bisogno di passare un URL ...' fortunatamente, solo usando il percorso locale ti dirò l'URL completo. Un piccolo copia/incolla ... et viola! –

2

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) 
4

procedura per verificare:

  1. Fare clic destro sul file/cartella su cui si desidera determinare il blocco

  2. Vai a TortoiseSVN Opzioni >> Repo-browser

  3. Una nuova finestra si aprirà e si otterrà una visualizzazione della tabella

  4. colonna Blocca nella tabella mostrerà che ha il blocco

4
  1. Fare clic destro sul file, selezionare TortoiseSVN, quindi verificare le modifiche
  2. Fare clic su Controlla repository
  3. Scorri a destra per visualizzare la colonna Blocca
+0

Risposta migliore. Grazie a Pradnya e Godsmith. – Gurusinghe

0

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).

Problemi correlati