Queremos baixar (exportar, fazer checkout) de um repositório completo e importar para um repositório diferente (com todas as mensagens de commit) periodicamente para que possamos implementar uma estratégia de tag/branch.
Antecedentes: Nosso empreiteiro apenas se compromete com o tronco e elerecusa(vamos mantê-lo técnico) para criar tags para versionar cada nova biblioteca (para que possamos acompanhar o gerenciamento de mudanças).
Portanto, queremos importar a biblioteca deles todos os dias para o nosso tronco e criar tags e ramificações de acordo com nossas políticas.
Alguém já aconteceu isso antes?
Responder1
Existem muitas soluções plausíveis na questão SOComo sincronizar dois repositórios Subversion.
A opção que parece se aplicar a você sugere o uso deSVKque é basicamente uma versão descentralizada do svn.
Responder2
Embora seja pouco convencional, acredito que vocêdeveser capaz de fazer isso com a ajuda de svnadmin
.
No repositório do contratante, você pode executar o seguinte:
svnadmin dump --incremental -r <LOWER REVISION>:<UPPER REVISION> /path/to/bad_repo > dumpfile
então no seu repositório:
svnadmin load --parent contractors_stuff/ /path/to/your/repository < dumpfile
Isso adicionará gradualmente revisões do repositório do contratante ao contractors_stuff
diretório do seu repositório real. Como eu disse, deveria funcionar em teoria, mas definitivamente não é esse o uso pretendido desse recurso. O teste é definitivamente necessário primeiro em um sistema que não seja de produção, e provavelmente seria interrompido se você fizesse alterações nessa parte do seu repositório real.
Idealmente, você diria ao seu empreiteiro para agir em conjunto e estabelecer a lei.
Uma solução técnica alternativa seria usar um sistema de controle de versão diferente, como Mercurial, Git ou outro DCVS, que suportasse melhor esse tipo de fluxo de trabalho.