8

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

Да, я знаю. Почему вы хотите мигрировать из Git в SVN? Что ж, я попал в ситуацию, когда мне нужно перенести огромное Git-репо в Subversion! Вот один рабочий процесс, который я пробовал на комментарий Эдвина: Сначала создайте локальное ...

Существует много маркетинговых (и несколько веских причин), чтобы отдавать предпочтение Git, а не Subversion, но есть много очень веских причин, чтобы отдавать предпочтение Subversion, а не Git. На ум приходит разумная обработка больших файлов (по одной причине).

от Edwin Buck

На самом деле, я предпочитаю Subversion, а не Git, но это больше связано с моим знакомством и опытом интеграции инструментов с Subversion. Он имеет мало общего с набором функций git.

от Edwin Buck

Конечно, я люблю Git и одобряю его для Subversion в одно мгновение ... но мне все равно нужно сделать эту миграцию ...

от Reza Toghraee

LOL, понял. Полагаю, с Git у меня по-другому ...

от Reza Toghraee

SVN 4 когда-либо :) По дополнительной причине: после фиксации кода не могу забыть «нажать» ...

от hfrmobile

2 ответа

8

Я бы порекомендовал вам перенести это с SubGit в несколько простых шагов.

$ 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
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 не будет работать должным образом, пока вы не линеаризуете историю своего ствола (или ветви).

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

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