Pergunta

I fez check-out um repositório SVN externo que eu tenho aplicado um par de patches para.
(Aplicando os patches só pode ser feito manualmente devido a conflitos.)

Agora eu quero ser capaz de manter esta cópia local do repositório remoto em um bom caminho.
(Eu não tenho quaisquer outros direitos de acesso do que ler sobre o repositório remoto.)

Antes de tudo necessidade eu para ser capaz de check-in minhas alterações locais em algum tipo de sistema de controle de origem uma vez que havia etapas manuais envolvidas na aplicação dos patches.

E em segundo lugar eu ainda quero ser capaz de receber atualizações a partir do repositório remoto.

Qual é a melhor maneira de conseguir isso?

Foi útil?

Solução

Eu acho que eu poderia usar um sistema de controle de origem diferente para a minha cópia local do que svn?
Por exemplo. check-in minha cópia local completa, incluindo as pastas .svn em cvs.

Ou eu também poderia usar git-svn mas eu não tenho certeza se que é a melhor solução.

Qualquer sugestão melhor?

Update: Sim, git-svn parece ser a solução preferida.

Mas para o registro, pode-se também usar hg com svn .

Outras dicas

A forma tradicional de fazer isso é tomar uma versão exportada do código e check-in em seu próprio repositório. Se há atualizações sobre o código, você fundi-los em seu repo. Você pode ajudar a fusão por ramificação inteligente (ramos de fornecedores de pesquisa). Tag o código em seu repo de acordo com as versões do código exportado você check-in.

Eu entendo SVK pode fazer isso em um ambiente puramente Subversion (eu usei-o para algo como isto um alguns anos atrás). No entanto, se você estiver interessado em experimentar Git, então git-svn pode ser um mesmo melhor escolha. Isso é o que eu iria usar hoje.

Uma ressalva, no entanto - se você estiver usando o Windows, então pode haver problemas para obter git-svn ao trabalho. Eu tive sucesso limitado nessa área e não use git-svn no Windows por causa disso.

Com svnsync você pode manter uma cópia de um repositório SVN, mas a partir do momento em que você modificar sua cópia local, você não pode continuar syncronizing.

Eu sugiro usar git para o seu trabalho final do dia-a-dia. Mantenha uma cópia de trabalho local do repositório SVN e colocá-lo sob controle git. Que será o mestre git. Clone o repositório em um local diferente, mestre ramo e trabalhar lá, aplicando seus patches diretamente para o ramo.

Regularmente atualizar seu svn wc e puxe-o em seu repositório git, como mestre. Então, mestre mesclar com o seu ramo.

A coisa confusa é que você vai ter "dois usuários git", um será a cópia de trabalho svn repo local e o outro o seu ramo remendado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top