ho un grosso problema con git-svn: ho bisogno di spingere solo il mio git repo a un server SVN, così ho fatto la seguentegit svn dcommit non trova modifiche e ripristinare la testa
svn mkdir --parents http://host/path/to/repo/{trunk,tags,branches} \
-m "Standard layout for $project"
git svn init -s http://host/path/to/repo/
git svn fetch
git rebase trunk master
git svn dcommit
Questo ha funzionato ottimo e tutto è sia su git che su svn!
Ora ho ricevuto il messaggio che il mio ramo di git master è 31 si commette dietro l'origine/master, quindi ho fatto un tiro di merda. Ora ho cambiato alcune cose nel mio repository (fondamentalmente è un progetto java di eclipse) e l'ho commesso. Ora voglio anche per spingerlo sul repo svn e ha fatto uno svn git dcommit ma quello non è di lavoro:
Committing to https://..../trunk ...
No changes
38b194cb2860b8bb73924cb05f9830dbdb70cf82~1 == 38b194cb2860b8bb73924cb05f9830dbdb70cf82
No changes between current HEAD and refs/remotes/trunk
Resetting to the latest refs/remotes/trunk
Unstaged changes after reset:
M Product/Abgabe.tex
Unable to extract revision information from commit daf483ad1333f3589386b87054f4c27fb7ff23cf~1
cosa ho sbagliato? Il master è ora azzerato per il commit prima, ora ho bisogno di git checkout -- Abgabe.tex
e git pull
di avere la versione proprio qui ...
Edit: Se faccio un git svn rebase
, ricevo per ogni commettere una lunga lista di conflitti, in modo ho fatto git rebase --skip
fino alla fine, e poi dcommted, questo funzionava, ma sembra essere un hack sanguinosa:/
mh sì sembra quindi ... ok ho identificato il problema: se uso git su host diversi e lo spingo al repository e devo unire rami, lo svn ramo ha un problema con la storia non lineare. ora devo rebase ... ma questo è dolore nel culo! quando voglio spingere di nuovo a git ho bisogno di estrarre prima la cronologia git e poi rebase di nuovo alla versione svn ... – reox
Generalmente faccio un 'git svn rebase' su master poi' git checkout -b feature_branch'. Esegui tutto il mio lavoro nel ramo di funzionalità una volta che sono pronto per eseguire il commit a monte del server svn, eseguirò 'git checkout master' quindi' git svn rebase' quindi 'git merge feature_branch' quindi' git svn dcommit'. – Joe
@Joe. Link è ora rotto, ma git svn rebase era il trucco. Grazie. – JackMorrissey