Eu tenho um repositório git que rastreia um repositório svn. Eu o clonei usando --stdlayout
.
Criei uma nova filial local via git checkout -b foobar
Agora eu quero que esse ramo termine no …/branches/foobar
repositório svn.
Como eu faço isso?
(grande parte do texto investigativo. consulte o histórico de perguntas, se você se importa)
Respostas:
Sei que esta pergunta foi respondida há um tempo atrás, mas depois de lê-la, talvez seja útil adicionar exemplos do comando git svn branch específico e relacioná-lo a um fluxo de trabalho típico.
Como kch respondeu, use
git svn branch
. Aqui está um exemplo completo (observe o-n
teste de execução a seco):Se isso der certo, o servidor responde com uma resposta como esta:
E sem a
-n
opção, o servidor provavelmente adiciona algo como:A melhor parte é que agora você pode criar uma filial local com base na sua filial remota da seguinte forma:
O que significa "faça check-out e crie uma filial local nomeada
auth_bug
e faça com que ela siga a filial remota (último parâmetro)auth_bug
Teste se sua filial local funciona nessa filial remota usando
dcommit
with--dry-run
(-n
):E o servidor SVN deve responder com o novo nome da filial:
fonte
git co
comgit checkout
de modo que o exemplo pode trabalhar para ninguémgit-svn branch
comando - você precisa estar online para criar uma nova ramificação dessa maneira. Você pode fazer o seguinte no modo offline: 1.git checkout -b foobar
2. hack-hack-hack 3git commit -m "Done foobar"
.. E, quando online, faça essa alteração executando 1.git svn branch foobar
2.git branch --set-upstream foobar remotes/foobar
3git svn dcommit
..git checkout -b foobar-new remotes/foobar
. 3.git checkout foobar
4.git rebase foobar-new
5. Testar para garantir que o ramo agora se comprometa com o ramo svn.git svn dcommit --dry-run
6. Finalmente, na verdade, cometergit svn dcommit
7. Remover temperatura ramogit branch -D foobar-new
a partir do git v1.6.1,
git svn branch
está disponível.Nos documentos do git:
As versões anteriores do git não fornecem uma maneira de criar um ramo svn.
fonte
@kch Acabei de compilar (7 de dezembro de 2008) a tag v1.6.1-rc1 do git e ela contém o comando git svn branch e a documentação para ele. Portanto, a versão v1.6.1 do git deve (espero) conter este comando.
fonte