Pracuję nad projektem, który wykorzystuje subversion do swojego repozytorium. Ponieważ muszę wprowadzić pewne zmiany, których nie można jeszcze przesłać na serwer svn, zacząłem używać git svn
, aby móc wykonywać lokalne meldowanie. Moja konfiguracja wygląda następująco:`git svn rebase` kontra` git rebase trunk`
Odgałęzienia: tułów (śledzący pień svn), wzorzec (dość zbliżony do tego, co jest w svn) i temat.
*------------------ trunk
\
*-----------*--------- master
\
*-------- topic
Workflow:
[on branch master]
$ git svn fetch
$ git svn rebase
$ git checkout -b topic
$ git rebase master
[hack hack hack]
$ git commit -a
[once upstream is ready for my changes]
$ git svn fetch
$ git checkout master
$ git svn rebase
$ git checkout topic
$ git rebase master
$ git svn dcommit
$ git checkout master
$ git svn rebase
$ git branch -d topic
Zakładając, że nikt nie dopuszcza do svn między git svn fetch
i git svn rebase
, Czy git svn rebase
bieg na pana w zasadzie taki sam jak git rebase trunk
biegu na mistrza?
Czy istnieje rozsądniejszy przepływ pracy? Wygląda na to, że dzieje się wiele zmieniających się gałęzi i zmian. Rozumiem, że chcę móc dokonać reorganizacji mojej pracy nad wszystkim, co jest w svn, ale wydaje mi się, że robię więcej podstaw niż jest to absolutnie konieczne.
Na pierwszym: więc nie muszę 'git svn fetch' przed' git svn rebase' ... Tak długo jak jestem na 'master'. Ale jeśli jestem na 'topic',' git svn fetch' zaktualizuje 'trunk', ale pozostawi tylko' master' i 'topic'. Nigdy jednak 'git svn rebase' nie jest moją gałęzią tematyczną, ja tylko' git rebase' it. Interesujące wiedzieć. –
@SeanMcMillan "Dopóki jestem mistrzem": tak, to jest idea. I robisz za każdym razem '' git checkout master ', więc ... – VonC
Po drugie: Według dokumentów, 'git svn dcommit' bez określonego oddziału wypycha zatwierdzenia na bieżącym HEAD, a nie tylko na' master'. Dlatego zobowiązuję się do SVN * z mojego oddziału *, a następnie polegam na 'git svn rebase' na' master', aby przywrócić poprawki z SVN. Opuszczam gałąź 'topic' po tym, jak dcommited. Czy to nie jest koszerne? –