Il mio repo è SVN, e faccio tutto lo sviluppo con git. Abbiamo un layout standard, e ho inizializzato il mio repo locale con git svn init -s <url to repo>
In che modo git-svn sa a quale ramo effettuare il dcommit?
Ecco il mio flusso di lavoro per lavorare con i rami:
# creates a new branch remotely
git svn branch new-branch-name
# switches to a branch or trunk locally
git reset --hard name-of-branch
git reset --hard trunk
# merge changes from trunk into a branch
git reset —hard name-of-branch
git merge trunk
git svn dcommit
Questo ultimo comando precedente le modifiche al nome-del-ramo ramo. La mia domanda è, come lo sa questo git? Quando faccio git reset --hard foo
, cosa succede esattamente?
Questo potrebbe giungere a una domanda generale su git. Ogni volta che provo a cercare una risposta mi confondo se l'integrazione svn è un caso speciale o no.
[1] "git-svn cercherà l'albero di commit per i commit degli antenati che corrispondono ai rami SVN attivi, quindi li inviterà a quelli". - A volte capita male - c'è un modo per me di specificarlo esplicitamente? [2] "questo tipo di cose può fubar la tua storia SVN" - quindi, la storia sarà unideale, ma la fusione dei file di codice dovrebbe andare bene, sì? –
hmm, la pagina man dice che '--commit-url' dovrebbe essere usato solo per cambiare trasporto, e" L'uso di questa opzione per qualsiasi altro scopo (non chiedere) è fortemente scoraggiata. " –
Se si desidera specificare un ramo specifico su cui eseguire il commit, eseguire semplicemente il rebase del ramo della funzione nella parte superiore del ramo remoto corrispondente nel repository Git. – cdhowie