2014-02-13 3 views
1

Я работал некоторое время с SVN, и теперь я перехожу к GIT по довольно очевидным причинам. Я уже могу создать git-репозиторий из svn.Git с синхронизированной резервной копией SVN

Поскольку я не очень уверен в GIT, прежде чем эффективно выбирать его в качестве моей системы управления версиями, я хочу, чтобы SVN-репозиторий синхронизировался с GIT, работая с GIT.

Я вполне в состоянии сделать это, через пост кнопочных крючки, но у меня есть следующие вопросы:

1) СВН коммит выполняются одним и тем же пользователем (тот, который управляет репозиторием, из которого выполняются dcommits).

2) Чтобы git svn оценил новые отличия для фиксации на SVN, он изменяет метаданные передачи GIT, добавляя уродливый «git-svn-id». Это изменяет commit-sha и поэтому требует дополнительного git pull, который, кроме того, создает «бриллиант» в дереве репозитория.

Есть ли способ избежать этого?

Обратите внимание, что я мог бы быть удовлетворен только гарантией односторонней синхронизации (от GIT до SVN), тогда как противоположное не должно удерживаться.

Заранее спасибо.

ответ

1

1) Вы можете настроить локальное хранилище GIT для отображения вперед и назад между пользователями SVN и авторами GIT путем создания an authors text file с форматом:

svnjohndoe = John Doe <[email protected]> 

Вы должны сказать git svn clone использовать его указав --authors-file вариант:

$ git svn clone http://someproject/svn --authors-file=authors.txt 

2) Вы можете избежать git-svn-id в вашем совершает фронта клонирования репозитория SVN с опцией --no-metadata:

$ git svn clone http://someproject/svn --no-metadata 

К сожалению, нет никакого способа, чтобы избежать git-svn-id когда pushing back to SVN.

Однако обходной путь, чтобы избежать необходимости совершающее ПОР изменены, чтобы толкать первым СВН (через git svn dcommit) и затем толчок к вашему потоку GIT репозиторий.

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