Enquanto rrirower está tecnicamente correto sobre svnadmin lslocks
, você pode pensar em possíveis formas alternativas
-
Ação única "Get FULL WC" (pode ser obtida no FS local do servidor, ou seja, relativamente rápida e movida como árvore de arquivos para o destino final), você obterá
svn st -u
(todos bloqueados em arquivos repo ) -
svn ls -R -v /REPO/ROOT
With --verbose, the following fields will be shown for each item:
Revision number of the last commit Author of the last commit If locked, the letter 'O'. (Use 'svn info URL' to see details) Size (in bytes) Date and time of the last commit
Com ambos os métodos você obterá apenas indicação de bloqueio (nome de arquivo bloqueado), cujo sinal você terá que expandir com svn info URL/TO/LOCKED/FILE
e extrair Lock Owner: XXX
string da saída (talvez use Saída XML de comando e ferramentas com reconhecimento de XML)
Responda à questão alternativa
Sim, você pode (até certo ponto)
Antes de desbloquear
Prepare o WC com Diretórios esparsos (com apenas diretórios, que possuem arquivos com seus bloqueios)
Desbloqueio
Modifique o arquivo bloqueado único no WC e confirme todo o WC. De acordo com o Livro do SVN
After the commit completes successfully, all of the repository locks that were mentioned are released—even on files that weren't committed. This is meant to discourage users from being sloppy about locking or from holding locks for too long. If Harry haphazardly locks 30 files in a directory named images because he's unsure of which files he needs to change, yet changes only four of those files, when he runs svn commit images, the process will still release all 30 locks.
Espero que todos os arquivos sejam desbloqueados
Outra maneira de desbloquear é usar svn unlock --target ARG
, onde o ARG mantém todas as URLs dos seus bloqueios (URL por linha), funcionará mesmo sem o WC