2011-10-14 9 views
5

Mam wielki problem z git-svn: Muszę po prostu wciskam git repo do serwera svn, więc zrobiłem następującegit svn dcommit nie znajdzie zmiany i zresetować głowicę

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 

pracował ten świetny i wszystko jest na git i svn!

Teraz otrzymałem wiadomość, że mój oddział Git Master 31 zobowiązuje się za pochodzenie/master, więc zrobiłem git pull. Teraz zmieniłem niektóre rzeczy w moim repozytorium (w zasadzie jest to projekt java zaćmienia) i go popełniłem. Teraz chcę również pchnąć go na repo svn i popełnił svn git dcommit ale to nie działa:

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 

Co zrobiłem źle? Kapitan jest teraz reseted aby przed popełnienia, teraz muszę git checkout -- Abgabe.tex i git pull mieć odpowiednią wersję tutaj ...

Edycja: Jeśli zrobię git svn rebase, otrzymuję za każdy popełnić długą listę konfliktów, tak zrobiłem git rebase --skip do końca, a następnie dcommted, to działa, ale wydaje się być krwawa Hack:/

Odpowiedz

7

myślę, czego brakuje w przepływie pracy jest git svn rebase http://flavio.castelli.name/2007/09/04/howto_use_git_with_svn/

+0

mh tak wydaje więc ... ok, wtedy zidentyfikowałem problem: jeśli używam git na różnych hostach i popycham go do repozytorium i muszę scalić gałęzie, svn gałąź ma problem z nieliniową historią. teraz muszę się przebić ... ale to jest ból w dupie! kiedy chcę ponownie nacisnąć GIT, muszę najpierw wyciągnąć moją historię git, a następnie ponownie ją przywrócić do wersji svn ... – reox

+3

Zazwyczaj używam 'git svn rebase' na master, a następnie' git checkout -b feature_branch'. Wykonaj całą moją pracę w gałęzi z funkcjami, gdy tylko będę gotowy do przekazania do serwera svn, ja 'git checkout master' następnie' git svn rebase', następnie 'git merge feature_branch', a następnie' git svn dcommit'. – Joe

+1

@Joe. Link jest teraz uszkodzony, ale git svn rebase było lewą. Dzięki. – JackMorrissey

Powiązane problemy