Git-Svn dcommit causa divisão de ramificação
Estou tendo um problema com o git-svn dcommits, fazendo com que o repositório git perca o controle de quais confirmações são quai
Tento garantir que a ramificação principal no git sempre siga o tronco no repositório SVN. Então, sempre que estou trabalhando, estou no ramo de tópicos. Aqui está o meu cenário:
Trabalhando em um ramo de tópico por um tempo
git checkout -b my-topic
git commit -m "blah blah blah"
Então eu decido que gostaria de mesclar minha filial novamente para dominar
git checkout master
git svn rebase #get any changes in svn
git rebase master my-topic
git merge my-topic --ff-only
té aqui, tudo correu bem. Agora tenho mestre e meu tópico atualizados e apontando para o mesmo commit, e a história inteira fica assim:
A -- B -- C - master + my-topic
No entanto, quando eu faço
git svn dcommit
Acabo com uma árvore que se parece com isso (B e C são confirmações que fiz originalmente para o tópico):
-- B -- C - my-topic
/
A -- B -- C - master + remotes/trunk
Parece que durante o processo dcommit, o git empurra os commits para o SVN e depois os replica no topo do master. Acho que o problema é que eles obtêm informações diferentes sobre o committer. Estou entrando no svn com tartaruga plink e uma chave SS
s confirmações no repositório git que não foram enviadas para o SVN têm informações sobre o committer como:
Collin Hockey <[email protected]>
s @ commits que foram enviados para o repositório svn têm o seguinte:
chockey <chockey@6206317d-b652-48a9-a948-4036602fc523>
Existe alguma maneira de impedir que esses galhos se separem? Eu posso consertar isso dizendo
git rebase master my-topic
novamente, mas eu sinto que isso deve ser desnecessário. O principal problema disso é que, quando as alterações de uma ramificação são enviadas para o SVN, o git não pensa mais que a ramificação foi mesclada em qualquer lugar. Torna confuso excluir ramificações antigas que você não precisa mai