Existe alguma maneira de cometer alterações que fiz na minha compra do SVN do porta -malas para uma filial?
Pergunta
Comecei a trabalhar em algumas mudanças contra o Trunk em um repo SVN, pensando que eles seriam um pouco pequenos. Agora, na verdade, estou começando a perceber que provavelmente deveria ter começado um novo ramo. Em vez de fazer um ramo, e depois mover cada peça individual, existe alguma maneira de fazer um novo ramo e depois comprometer as alterações na minha cópia de trabalho para ela?
Solução
- Faça um novo ramo do local onde você começou a desenvolver
- Mude para o ramo recém -criado
- Comprometa as mudanças locais (se comprometerá com o novo ramo)
Não faça checkout
Eu faço isso com o SVN 1.6.5, ele funciona sem problemas, mas se você é realmente paranóico, poderá fazer o seguinte:
- Crie um patch a partir da cópia de trabalho atual
- Crie um ramo
- mude para isso
- Aplique o patch
- comprometer-se
Outras dicas
Que tal criar um patch a partir do seu trabalho atual com svn diff
, depois fazer um novo ramo e aplicar o patch no ramo com patch -p0
?
Você pode ramificar diretamente o estado de sua cópia de trabalho para um URL com o svn copy
comando. A filial criada incluirá as modificações locais.
Alguns Gotchas:
- Você pode obter erros declarando algo como "o arquivo já existe". Isso é causado por uma incompatibilidade de revisões básicas em sua cópia de trabalho, mais especificamente entre um arquivo e sua pasta pai. Uma solução possível é fazer um
svn update
Antes de tentar ramificar dessa maneira. - depois de
svn copy
, a cópia de trabalho permanecerá inalterada. Ainda apontará para o porta -malas. Ele também mostrará as modificações locais em seu status. Você deve primeiro reverter essas modificações, se continuar usando a cópia de trabalho como está ou alterná -la para a nova ramificação.