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

У меня только git, и я использовал svn. Но я не использовал их вместе. У меня был git-репозиторий, и я должен был добавить больше своего хранилища в подрывную. Поэтому я использовал git-svn. Что работает нормально, большую часть времени. Тем не менее, я нахожу круги кругами.git-svn rebase и проблема dcommit

Я единственный, кто работает над этим проектом.

Я вношу некоторые изменения в свою ветку. я стадия их:

git stage gateway.c 

Затем их совершить локально мерзавец:

git commit m"Made some changes" 

Тогда я хочу, чтобы зафиксировать их в подрывную деятельность. Получить последние обновления:

git svn rebase 

Затем я получаю следующее сообщение:

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 

Тогда я снова сделать перебазироваться:

git svn rebase 

Сообщение заключается в следующем:

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 

Который ставит меня на ветку, называемую, и w шляпа эта ветка и что это такое ?:

*(no branch) 

Затем я разрешаю конфликты с этой веткой. Затем я проверяю свою ветку play_video. Я пытаюсь сделать другой:

svn git dcommit 

И я снова обворачиваю круги.

Перед тем, как начать потянув меня за волосы, может кто-нибудь предложить мне несколько советов,

Большое спасибо за любые предложения,

+0

Имея такую ​​же проблему здесь ... почти 3 года и не предложение ... – Quartz

ответ

3

Нет полного ответа, но то, что кажется несомненным, что:

*(no branch) 

означает, что вы в конечном итоге находитесь в режиме DETACHED HEAD, который вы видите в контексте git svn в «Can I recover lost commits in a SVN repository using a local tracking git-svn branch?».
См. Также «Why did git detach my head?».

Поэтому убедитесь, что:

  • на каждом шаге вы не в отдельных HEAD (ни одна ветвь)
  • что вы dcommit ветвь, которая существует в SVN репо (а не чисто местное отделение Гит)
+0

Спасибо за вашу помощь. Я проверяю это. – ant2009

+0

Я обнаружил, что застрял здесь, и я попытался сделать кучу разных команд git, но в итоге закончил работать git svn dcommit, прежде чем смог продолжить слияние svn. – hellatan

+0

@dtan: есть ли какие-либо сообщения об ошибке или ошибке, с которыми вам нужна помощь? – VonC

1

Вы использовали инструкции Google here для импорта git-репо в svn? У меня была аналогичная ошибка после использования этих инструкций: первоначальный импорт прошел нормально, но что-то пошло не так, как надо, и я не мог нажать последующие коммиты.

Я разрешил его только git svn init -в новом реестре git для отслеживания моего репозитория svn.

1

После устранения ваших конфликтов необходимо запустить git rebase --continue перед запуском git svn dcommit

+0

git rebase - Continue просто говорит, что нечего делать. – Quartz

Смежные вопросы