Sto lavorando a un progetto che utilizza subversion per il loro repository. Poiché ho bisogno di apportare alcune modifiche che non possono ancora essere inviate al server svn, ho iniziato a utilizzare git svn
in modo da poter eseguire checkin locali. La mia configurazione è la seguente:`git svn rebase` vs` git rebase trunk`
Rami: tronco (tracciamento svn trunk), master (molto vicino a ciò che è in svn) e argomento.
*------------------ trunk
\
*-----------*--------- master
\
*-------- topic
flusso di lavoro:
[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
Presumendo che nessuno si impegna a svn tra git svn fetch
e git svn rebase
, È git svn rebase
corsa sul maestro fondamentalmente lo stesso come git rebase trunk
corsa sul maestro?
C'è un flusso di lavoro più ragionevole da utilizzare? Sembra che ci sia un sacco di rami in cambiamento e di riforme in corso. Capisco che voglio essere in grado di rebase il mio lavoro sopra tutto ciò che è in svn, ma sembra che sto facendo più rebases di quanto strettamente necessario.
Sul primo: Quindi non ho bisogno di 'git svn fetch' prima di' git svn rebase' ... Finché sono in 'master'. Ma se sono su 'topic',' git svn fetch' aggiornerà 'trunk', ma lasceremo' master' e 'topic' da soli. Non ho mai git svn rebase' il mio branch di argomento, ho solo 'git rebase' it. Interessante sapere –
@SeanMcMillan "Finché sono al comando": sì, questa è l'idea. E fai un 'git checkout master' ogni volta, quindi ... – VonC
Al secondo: Secondo i documenti,' git svn dcommit' senza un ramo specificato, spinge i commit sull'attuale HEAD, non solo su 'master'. Quindi mi impegno su SVN * dal mio ramo *, quindi mi affido a 'git svn rebase' su' master' per riportare i commit da SVN. Abbandono il ramo 'topic' dopo che ho scomunicato. Non è kosher? –