Вопрос по git, svn, git-svn, migration – Git-2-SVN миграция?

8

Да, я знаю. Почему вы хотите мигрировать из Git в SVN?

Что ж, я попал в ситуацию, когда мне нужно перенести огромное Git-репо в Subversion! Вот один рабочий процесс, который я пробовал на комментарий Эдвина:

Сначала создайте локальное репозиторий SVN: svnadmin create svn_repo

Затем я проверяю свое Git-репо: git clone git:myNameSpace/myProject

cd вmyProject и запустить:

git svn init -s --prefix=svn/ file:///home/myHome/svn_repo/myProject

git svn fetch

git rev-list --parents master | grep '^.\{40\}$' искать хеш вашего корневого коммита и дает только один коммит, как и должно.

Далее нужно получить хеш пустого коммита транка: git rev-parse svn/trunk

Этот, к сожалению, не с:

fatal: ambiguous argument 'svn/trunk': unknown revision or path not in the working tree. Use '--' to separate paths from revisions

Ну, я не могу много после этого ....

Существует много маркетинговых (и несколько веских причин), чтобы отдавать предпочтение Git, а не Subversion, но есть много очень веских причин, чтобы отдавать предпочтение Subversion, а не Git. На ум приходит разумная обработка больших файлов (по одной причине). Edwin Buck
Конечно, я люблю Git и одобряю его для Subversion в одно мгновение ... но мне все равно нужно сделать эту миграцию ... Reza Toghraee
На самом деле, я предпочитаю Subversion, а не Git, но это больше связано с моим знакомством и опытом интеграции инструментов с Subversion. Он имеет мало общего с набором функций git. Edwin Buck
LOL, понял. Полагаю, с Git у меня по-другому ... Reza Toghraee
SVN 4 когда-либо :) По дополнительной причине: после фиксации кода не могу забыть «нажать» ... hfrmobile

Ваш Ответ

2   ответа
8

ов.

$ svnadmin create svn.repo
$ subgit configure svn.repo
$ nano svn.repo/conf/subgit.conf #edit path to your (bare!) Git repository (you may use "git clone --bare <URL> bare.git.repo" if you don't have it locally)
$ subgit install

Вот и все. При переводе SubGit будет стараться сохранить все коммиты (даже временные), ветки, слияния, игнорирования, даты, настройки EOL, теги и так далее, насколько это возможно.

После перевода репозитории будут синхронизированы (каждое нажатие на Git транслируется в ревизию SVN и наоборот). Чтобы прервать синхронизацию (если она вам не нужна), запустите

$ subgit uninstall svn.repo
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededsubgit configure --svn-url <URL> <dir>Error: User Rate Limit ExceededsvnsyncError: User Rate Limit Exceededsvndump+svnrdump.
Error: User Rate Limit Exceeded
3

Вы сделали пустой первоначальный коммитsvn/trunk? Если нет, то это объясняет, почему вы получаете ошибку, которую нельзя найти в истории.

Комментарии (в сочетании)

The --prefix gives you remote tracking branches like "svn/trunk" which
is nice because you don't get ambiguous names if you call your local
branch just "trunk" then. 

а также

Then get the hash of the empty trunk commit:

Имеет в виду, что они сделалиsvn/trunk совершить, чтобы предотвратить конфликт SVN с уже существующимtrunk каталог. Если это так, возможно, ваша единственная ошибка не совершаетsvn/trunk быть найденным позже?

--- Оригинальный пост следует ---

Ты пыталсяэтот? dcommit не будет работать должным образом, пока вы не линеаризуете историю своего ствола (или ветви).

Пожалуйста, опубликуйте детали вашей попытки миграции. Хотя то, что вы опубликовали, является полезным сообщением об ошибке, оно будет в десять раз более полезным со списком шагов, которые вы использовали для получения этой ошибки.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededgit svn fetchError: User Rate Limit Exceeded Reza Toghraee
Error: User Rate Limit Exceededgit rev-parse svn/trunkError: User Rate Limit Exceeded Reza Toghraee
Error: User Rate Limit Exceeded Reza Toghraee

Похожие вопросы