svn reverter uma única propriedade em um diretório?

6

Como posso reverter uma das várias propriedades em um diretório da linha de comando svn?

Meu svn trunk tem uma propriedade svn: externals para importar um repositório externo.

/trunk
  svn:external = /external/trunk

Quando eu configuro um novo branch foo, o externo é alterado para apontar para um branch também:

/branches/foo
  svn:external = /external/branches/foo

Às vezes, quando mesclo uma ramificação no tronco, essa propriedade é copiada e acabo com:

/trunk
  svn:external = /external/branches/foo

Normalmente, eu poderia executar svn revert . --depth=empty para desfazer a mesclagem de propriedade, mas há outras propriedades no diretório que também seriam revertidas, especificamente svn:mergeinfo . Do meu cliente GUI, eu posso reverter propriedades individuais facilmente, mas nem sempre lembro de fazer isso. Existe uma maneira de fazer a mesma coisa diretamente da linha svn cmd, ou eu preciso escrever algum wrapper louco para svn propget para obter e desfazer o diff?

    
por Maelstrom 05.11.2010 / 01:23

2 respostas

9

svn propset svn:externals "$(svn propget svn:externals . -r HEAD)" .

isso define a propriedade para o valor HEAD. Essa é uma solução válida, pois revert só pode ser aplicado a propriedades all e não existe para propriedades individuais .

    
por 11.12.2012 / 21:09
0

Para minha referência futura, mais do que para você, já que você provavelmente tem a resposta ...

svn propget PROPNAMETOREVERT 'svn info | perl -ne 'print if s/URL: (.*)//'' | perl -ne 'chomp; print' | svn propset PROPNAMETOREVERT  -F - .

Trabalhei para mim (em uma propriedade de uma linha, pode precisar de modificação para uma com várias linhas).

O que poderia fazer claramente com ser um script: -)

    
por 10.06.2011 / 15:51