Pergunta

Estou tentando encontrar uma maneira de remover bloqueios de zumbis usando as ferramentas de linha de comando do Subversion.O objetivo final é fazer isso a partir de um script de gancho, mas não consegui descobrir a linha de comando a ser usada quando você tem apenas um caminho de repositório físico.(O uso de svnadmin rmlocks parece funcionar apenas para bloqueios que existem na revisão HEAD.)

Idealmente, eu gostaria de fazer isso por meio do script de gancho pós-commit usando as ferramentas de linha de comando.(Estou ciente do script python para essa finalidade, mas preferimos não instalar o python nesse servidor para esse uso único.) Somos uma loja .NET, portanto, criar uma ferramenta com a biblioteca SharpSVN também é um possibilidade, mas a única capacidade de desbloqueio parece estar na classe SVNClient.

Então são realmente duas perguntas:Existe uma maneira de fazer isso com as ferramentas de linha de comando?Caso contrário, existe uma maneira de fazer isso no SharpSVN?(Ou talvez outra biblioteca?)

== Atualização em 3 de dezembro de 2012 ==

Tive que revisitar esse problema recentemente e descobri que essa questão ainda está atraindo tráfego.O script python mencionado na pergunta original e na resposta de Don mudou para: http://svn.apache.org/repos/asf/subversion/trunk/contrib/hook-scripts/remove-zombie-locks.py (Presumo que seja isso que a maioria das pessoas está procurando.)

Ironicamente, embora o repositório tenha migrado para Linux, estamos usando a solução C.

Foi útil?

Solução 2

Parece que a resposta é "Você não pode chegar lá daqui".

  • Svnadmin fornece uma linha de comando para remover bloqueios com um caminho de repositório, mas parece não funcionar com bloqueios zumbis.
  • SharpSVN é principalmente do lado do cliente;ele possui alguns métodos para conectar-se a um caminho de repositório, mas esses (de acordo com a documentação) são principalmente para uso em testes de unidade da biblioteca.

Então, reescrevendo o script python em C usando a biblioteca API do Subversion.

Outras dicas

afaik Não é documentado em qualquer lugar quais campos devem ser incluídos para poder fazer uma atualização após consultar com o ViewFieldonly definido como true, mas de acordo com sppery.ViewFieldly e atualizando um splistitem Está entre outros ID, exclusivo, tipo de objeto, ...

mas minha recomendação é definitivamente nem tente, basta definir viewfieldly para false, então você tem certeza de obter o que é necessário mesmo em versões futuras do SharePoint.

Se você conhece o caminho do repositório para o arquivo excluído que é bloqueado por zumbis, é tão simples que eu não consegui acreditar no início:

svn unlock --force https://path/to/my/file

Isso funciona, mesmo que o arquivo excluído (por definição) não exista na cabeça do repositório. Nenhuma revisão de PEG é necessária nem permitida. o force A opção é necessária apenas se o bloqueio for de outro usuário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top