Como posso obter uma lista de todos os svn: externals (recursivamente) em um diretório? Existe algum utilitário para isso?
(Estou usando Windows (e tartaruga))
Eu tenho um monte de svn: externals vinculados a diferentes partes compartilhadas do meu projeto e eu, quando faço um branch, é geralmente bastante sujeito a erros encontrar todos os externos e alterá-los para que o link para caminhos dentro do novo branch.
svn
tortoisesvn
Niels Bosma
fonte
fonte
Respostas:
Faça o seguinte na raiz da sua cópia de trabalho:
Conforme discutido nos comentários abaixo, isso não lista externos em externos.
Nota para usuários do TortoiseSVN: há uma opção no instalador do TortoiseSVN para também instalar o cliente de linha de comando SVN. Esta opção não está habilitada por padrão.
fonte
Alterar manualmente todas essas propriedades externas parece tedioso. Você já olhou para a nova funcionalidade para recursos externos adicionados no Subversion 1.5?
Talvez um desses ajudasse? Eu acho que depende exatamente de como você está ramificando e como sua estrutura de repositório se parece.
fonte
Minha solução alternativa para o TortoiseSVN:
Abra a caixa de diálogo "Branch / tag ..." no menu de contexto do SVN. A caixa de diálogo inferior mostra todos os externos, incluindo os externos aninhados.
fonte
svn propget svn:externals -R
.Talvez, como alternativa, você possa estruturar seu projeto de forma que todos os externos sejam configurados na mesma pasta, por exemplo, na pasta do projeto logo abaixo do tronco. (Isso não significa que todas as pastas externas tenham que ter a mesma profundidade.) Em seguida, você pode clicar com o botão direito do mouse na pasta do projeto, Propriedades ..., a guia Subversion, Propriedades ... e clique duas vezes em svn: externals.
fonte
Usei a resposta de Wim Coenen e escrevi o seguinte script para criar uma lista de todas as revisões:
Felizmente, não tenho itens externos aninhados, então não precisei testar isso e acho que não funcionaria. Mas se você precisar disso, provavelmente é o suficiente apenas chamar essa função recursivamente. Além disso, nunca testei nomes de arquivos que precisassem de escape. Provavelmente não funcionará então.
AVISO DE RESPONSABILIDADE: Eu sei que a pergunta original era sobre o Windows, e o shell script não funcionará lá a menos que você esteja usando o cygwin ou similar.
fonte
Peguei a resposta de Daniel Alder , removi as chamadas svnversion e tornei-a recursiva (NOTA:
read a b c d e
não funciona se houver um espaço na origem ou no destino). Este é um script bash, então você precisará de algo como Cygwin ou usar o subsistema do Windows para Linux .fonte