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 do 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 correr 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?

Maelstrom
fonte

Respostas:

9

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

isso define a propriedade para o valor HEAD. Esta é uma solução válida desde revert só pode ser aplicado a todos propriedades e não existe para Individual propriedades.

David
fonte
0

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

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

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

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

George Lund
fonte