Eu tenho um repositório Subversion onde um diretório foi movido uma vez. eu quero enviar
para alguém apenas uma parte do repositório, que inclui este
diretório.
Acredito que li e compreendi o manual .
O que eu tentei:
svnadmin dump /home/Subversion-Repository | \
svndumpfilter include new-name /new-name /foo/bar/old-name > something.svn
svnadmin create /new/repos
# Create directories foo/bar and new-name
svnadmin load /new/repos < something.svn
Mas isso falha:
<<< Started new transaction, based on original revision 5944
svnadmin: File not found: transaction '5944-4l4', path 'new-name/myfile'
* editing path : new-name/myfile ...
O que me surpreende é que, no lixão cheio (sem passar por
svndumpfilter), há uma revisão que adiciona os arquivos ao novo
lugar:
Node-path: new-name
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
mas o svndumpfilter não o mantém. Então, a primeira revisão mencionando
um arquivo sob o novo nome é 'Node-action: change' e não 'Node-action:
add 'e falha. Por quê?
Um script de shell Unix para reproduzir o problema à vontade é disponível .
[Eu fiz a pergunta na lista de discussão do Subversion, mas a mensagem não foi distribuída, provavelmente consumida por um filtro de spam excessivamente zeloso.]
UPDATE: eu testei a sugestão de Insyte. Ambos svndumpfilter2 e
svndumpfilter3 falha. Ambos nem sequer verificam o argumento, você pode dar
um repositório inexistente, eles não se queixariam.
Com svndumpfilter2, modificando meu script para usar ${SVNDUMPFILTER2} ${REPOS} other/new-name/bar foo/old-name/bar > ${DUMP}
:
<<< Started new transaction, based on original revision 7
svnadmin: File not found: transaction '8-8', path 'other/new-name/bar/myfile'
* editing path : other/new-name/bar/myfile ...
Com svndumpfilter3, modificando meu script para usar
${SVNDUMPFILTER3} --untangle=${REPOS} other/new-name/bar
foo/old-name/bar > ${DUMP}
:
<<< Started new transaction, based on original revision 7
svnadmin: File not found: transaction '8-8', path '/other/new-name/bar/myfile'
* editing path : other/new-name/bar/myfile ...