Provavelmente sua estrutura svn não possui diretório "Software / XXXXXX / branches", ela deve existir para criar "testbranch" aqui. Você deve criar este diretório ("branches") pelas mãos e então fazer um branch.
Estou tentando criar uma ramificação em um dos meus repositórios do subversion e continuar com um erro. Não importa o que é feito, eu continuo recebendo o seguinte:
File not found: transaction '3062-2e6', path '/Software/XXXXXX/branches/testbranch'
Eu notei que a primeira parte do '3063-3e6' na mensagem acima é a última revisão confirmada com sucesso no repositório. Meus logs do apache não fornecem muito mais informações:
[Wed Nov 24 14:10:38 2010] [error] [client x.x.x.x] Could not MOVE/COPY /svn/p070361/!svn/bc/3049/Software/SXXXXXX/trunk. [404, #0]
[Wed Nov 24 14:10:38 2010] [error] [client x.x.x.x] Unable to make a filesystem copy. [404, #160013]
[Wed Nov 24 14:10:38 2010] [error] [client x.x.x.x] File not found: transaction '3059-2e2', path '/Software/XXXXXX/branches/testbranch' [404, #160013]
Isso tudo está acontecendo em um servidor com um frontend nginx que faz proxy para o Apache para os bits de subversão. Outros repositórios são capazes de se ramificar bem e eu consegui criar o branch usando file: /// da linha de comando no servidor em que isso está ocorrendo. As permissões neste repositório correspondem a todos os outros repositórios e o espaço em disco não é um problema.
Provavelmente sua estrutura svn não possui diretório "Software / XXXXXX / branches", ela deve existir para criar "testbranch" aqui. Você deve criar este diretório ("branches") pelas mãos e então fazer um branch.
Esta mensagem de erro inútil pode ocorrer se os subdiretórios no caminho de destino ainda não existirem. Embora você possa criá-los manualmente (com svn mkdir
), é mais fácil usar a opção --parents
.
svn cp ^/trunk/bigproject ^/branches/experimental/bigproject -m 'test branch'
Se branches
ou experimental
não existisse, o comando falharia. Isso deve funcionar:
svn cp --parents ^/trunk/bigproject ^/branches/experimental/bigproject -m 'test branch'
Eu sei que esta não é a resposta direta para seus problemas, mas se você quiser trabalhar com ramificações eficientemente, você deve considerar o uso de outros sistemas de controle de versão, como git, mercurial ou bazzar.
Ou se você não quiser fazer a migração completa, você pode usar o git-svn como um "front-end" do seu repositório svn, eu recomendo que você leia isto para saber mais sobre o git-svn.
Tags nginx svn apache-2.2