Могут ли Git и Subversion хорошо играть вместе? - PullRequest
5 голосов
/ 10 июня 2009

Я недавно решил сделать решающий шаг, и я действительно наслаждаюсь использованием git, даже в Windows.

Мой текущий проект с открытым исходным кодом живет на Subversion , все разработчики знакомы с Subversion, поэтому я бы хотел пока оставить Subversion в качестве "источника правды".

Тем не менее, я хочу использовать git, поэтому я решил создать копию исходного кода на github , используя git svn . Вся моя работа выполняется с источником в github, и я отправляю свои изменения в github. Раз в несколько дней я также отправляю свои изменения в svn и перебазирую.

Первоначальный импорт, казалось, прошел нормально, но теперь каждый раз, когда я делаю «git svn rebase», я продолжаю получать конфликты, даже с файлами, которые я не изменил в своем репозитории get. Это причиняет мне много боли .

Например.

$ git svn rebase
First, rewinding head to replay your work on top of it...
Applying: Added git ignore file
c:/Users/sam/Desktop/MediaBrowserGit/trunk/.git/rebase-apply/patch:12: trailing
whitespace.
*/obj/*
error: .gitignore: already exists in index
Using index info to reconstruct a base tree...
:12: trailing whitespace.
*/obj/*
warning: 1 line adds whitespace errors.
Falling back to patching base and 3-way merge...
Auto-merging .gitignore
CONFLICT (add/add): Merge conflict in .gitignore
Failed to merge in the changes.
Patch failed at 0001 Added git ignore file

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/git-svn: command returned error: 1

Мои вопросы:

  1. Есть ли способ, которым я могу сказать git синхронизироваться с svn, используя svn в качестве источника, чтобы я мог начать с чистого листа. (экспортировать последние, проверить изменения и сбросить ссылки svn где-нибудь)

  2. Есть ли какие-либо советы и рекомендации, чтобы этот сценарий работал последовательно?

  3. Должны ли я установить для параметров core.safecrlf и core.autocrlf значение true? Кажется, мне понадобится немного прыжков с обручем.

Похожие:

Кажется, правильное окончание строк - это что-то вроде черного искусства.

(я понимаю, что этот вопрос, вероятно, нужно расширить, пожалуйста, прокомментируйте места, которые нужно расширить)

1 Ответ

1 голос
/ 10 июня 2009

Получаете ли вы конфликты в конце строки? У Git есть несколько свойств конфигурации, которые вы можете установить, чтобы изменить способ обработки символов конца строки. У меня есть следующий набор:

# this makes git NOT attempt to convert line endings on commit and checkout
core.autocrlf=false

# this makes git check if the conversion done by autocrlf would be reversible
# this is probably not required because I do not have autocrlf turned on
core.safecrlf=true

Обратите внимание, что я на Windows, все мои коллеги на Windows, и я взаимодействую с SVN через git-svn. Эти настройки, кажется, помогают мне.

alt text
(источник: codinghorror.com )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...