2010-12-14 18 views
8
git version 1.7.1 
svn, version 1.6.12 
Ubuntu 10.10 

Mam tylko git i użyłem svn. Ale nie użyłem wtedy razem. Miałem repozytorium git, i musiałem więcej mojego repozytorium do jednego z subversion. Więc używam git-svn. Który działa dobrze, przez większość czasu. Jednak znajduję się w kółko.git-svn rebase i dcommit problem

Tylko ja pracuję nad tym projektem.

Wprowadzam pewne zmiany w moim oddziale. I następnie wystawić je:

git stage gateway.c 

następnie zatwierdzić je lokalnie do git:

git commit m"Made some changes" 

Następnie chcę popełnić ich do działalności wywrotowej. Pobierz najnowsze aktualizacje:

git svn rebase 

Następnie pojawia się następujący komunikat:

It seems that I cannot create a rebase-apply directory, and 
I wonder if you are in the middle of patch application or another 
rebase. If that is not the case, please 
     rm -fr /home/joe/projects/gateway/.git/rebase-apply 
and run me again. I am stopping in case you still have something 
valuable there. 
rebase refs/remotes/trunk: command returned error: 1 

I then doing the following: 
rm -fr /home/joe/projects/gateway/.git/rebase-apply 

Potem zrobić rebase ponownie:

git svn rebase 

Komunikat jest taki:

First, rewinding head to replay your work on top of it... 
Applying: Issue with getting the port from the user context. 
Using index info to reconstruct a base tree... 
Falling back to patching base and 3-way merge... 
Auto-merging driver.c 
Auto-merging gateway.c 
CONFLICT (content): Merge conflict in gateway.c 
Failed to merge in the changes. 
Patch failed at 0001 Issue with getting the port from the user context. 

When you have resolved this problem run "git rebase --continue". 
If you would prefer to skip this patch, instead run "git rebase --skip". 
To restore the original branch and stop rebasing run "git rebase --abort". 

rebase refs/remotes/trunk: command returned error: 1 

Który stawia mnie na oddzwonił, a w kapelusz to ta gałąź i po co to jest ?:

*(no branch) 

Następnie rozwiązuję konflikty w tym oddziale. Następnie kupię moją gałąź play_video. Próbuję zrobić następną:

svn git dcommit 

I znów skończę w kółko.

Zanim zacznę ciągnięcie moich włosów, może niektóre oferują mi kilka rad,

Wielkie dzięki za wszelkie sugestie,

+0

ten sam problem tutaj ... prawie 3 lata i nie sugestię ... – Quartz

Odpowiedz

3

Brak pełnej odpowiedzi, ale to, co wydaje się pewne, że:

*(no branch) 

oznacza, że ​​kończysz w trybie DETACHED HEAD, który widzisz w kontekście git svn w "Can I recover lost commits in a SVN repository using a local tracking git-svn branch?".
Zobacz także "Why did git detach my head?".

Więc upewnij:

  • na każdym kroku, że nie jesteś w jednorodzinnym głowy (no branch)
  • że dcommit gałąź, która istnieje w SVN repo (a nie czysto lokalny oddział Git)
+0

Dzięki za pomoc. Sprawdzam to. – ant2009

+0

znalazłem się tutaj utknąłem i próbowałem robić kilka różnych poleceń git, ale skończyło się na uruchomieniu git svn dcommit, zanim mogłem wykonać dalsze scalanie svn. – hellatan

+0

@dtan: czy jest jakiś problem lub komunikat o błędzie, z którym potrzebujesz pomocy? – VonC

1

Czy użyłeś instrukcji Google here do zaimportowania repozytorium git do svn? Miałem podobny błąd po użyciu tych instrukcji: początkowy import poszło dobrze, ale coś poszło nie tak gdzieś w dole i nie mogłem pchać kolejnych zatwierdzeń.

Rozwiązałem go po prostu git svn init -nowy świeże repozytorium git śledzić moje repozytorium svn.

1

Po rozwiązaniu swoich konfliktów trzeba uruchomić git rebase --continue przed uruchomieniem git svn dcommit

+0

git rebase --continue mówi tylko, że nie musisz nic robić. – Quartz