Localizando arquivos bloqueados no svn sem check-out

1

Como posso encontrar os arquivos que eu tenho bloqueado em uma árvore svn que é tão grande (dezenas de milhares de arquivos) que eu quero evitar verificar tudo:
Posso fazer svn <magic arguments> | grep <MyUserName> para encontrar arquivos bloqueados por mim?

Pergunta alternativa: Posso remover todos os meus bloqueios (desbloquear todos os arquivos) em uma árvore svn de uma só vez?

svn status só funciona depois de verificar tudo e svnadmin lslocks é útil apenas no servidor, ao qual não tenho acesso.

    
por Juergen 18.04.2017 / 13:33

2 respostas

0

Enquanto rrirower está tecnicamente correto sobre svnadmin lslocks , você pode pensar em possíveis formas alternativas

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

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

    
por 18.04.2017 / 20:44
0

Você deve conseguir uma lista de arquivos bloqueados usando: svnadmin lslocks

E eu acho que: svn cleanup removerá seus bloqueios.

    
por 18.04.2017 / 15:49

Tags