2009-05-12 12 views

Respuesta

16

El cliente de la línea de comandos muestra el propietario del bloqueo con el comando "svn info".

En TortoiseSVN, puede ver el propietario del bloqueo en el menú contextual de "propiedades" (pestaña "subversión").

+1

Tristemente, TortoiseSVN me dice ** no hay bloqueos ** cuando miro en esa página de propiedades/subversión. Pero me dice ** _ I_ lo tengo bloqueado _ elsewhere _ ** cuando intento confirmar el archivo. Pero no me dirá dónde lo cerré. PD: Solo bloqueo (a propósito) en un directorio de Windows. Esperaba encontrar dónde se produjo el bloqueo accidental. –

+0

@JesseChisholm: No creo que Subversion registre la copia de trabajo que envió el candado. De todos modos, si está seguro de que no tiene cambios pendientes, puede simplemente romper el bloqueo. – sleske

+0

finalmente, tuve que ir a cada máquina que tenía un sandbox SVN y comprobar si se creó un bloqueo accidental allí 'svn status --show updates' hasta que encontré la máquina que tenía el bloqueo involuntario. Entonces podría liberar ese bloqueo 'svn unlock offendingFile' y borrar la situación. –

0

Consulte la sección red book 'Detección de bloqueos'. Creo que contiene la respuesta.

12

Utilizando la función repo-browser de TortoiseSVN hay una columna de bloqueo que muestra al usuario que bloqueó el archivo.

Haga clic derecho en la copia de trabajo local -> TortoiseSVN-> repo-navegador.

26

Usa svn status --show-updates para descubrir bloqueos en los archivos. En el siguiente ejemplo, Sally descubre que hay un bloqueo en 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 vez conocido el bloqueo, puede utilizar svn -info para descubrir que ha marcado el bloqueo. Observe "propietario del bloqueo" a continuación:

$ 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

Esto no parece funcionar con las versiones posteriores de Subversion (por ejemplo, 1.7). Cuando ejecuto la información de svn, no obtengo ninguna información sobre el propietario del bloqueo. Mi solución (que no es ideal) es ejecutar 'svn status -u --xml filename' y analizar el XML resultante. – HulkHolden

+6

Tenga en cuenta que debe pasar una URL en lugar de una ruta local a 'svn info' para obtener información de bloqueo actualizada. –

+1

re: 'necesita pasar una URL ...' Afortunadamente, el solo uso de la ruta local le dirá la URL completa. Un poco de copiar/pegar ... ¡y viola! –

2

La siguiente secuencia de comandos de Python muestra todos los bloqueos y quién es su propietario:

#!/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

pasos para comprobar:

  1. haga clic derecho en el archivo/carpeta en la que desea determinar el bloqueo

  2. Ir a Opciones de TortoiseSVN >> Repo-browser

  3. Una nueva ventana se abrirá y podrá obtener una vista de tabla

  4. columna de bloqueo en la tabla mostrará que tiene la cerradura

4
  1. Haga clic derecho en el archivo, seleccione TortoiseSVN, luego Verifique las modificaciones
  2. Haga clic en Verificar repositorio
  3. Desplácese a la derecha para ver la columna de Bloqueo
+0

Mejor respuesta. Gracias Pradnya y Godsmith. – Gurusinghe

0

Tuve también este problema con los archivos .aux .aux. La solución/problema en mi caso fue que no se permiten subdirectorios con una profundidad mayor a 1. Si desea usar esto, los subdirectorios en la carpeta tmp deben estar existentes. p. -> src -> Introducción -> introduction.tex requiere -> tmp -> Introducción -> introduction.aux ** * ** *

El directorio subrayado debe estar existente. Por lo tanto, en el caso de la administración de subversión, confirme también la estructura de directorios en la carpeta tmp (sin los archivos * .aux).

Cuestiones relacionadas