Как перейти с SVN на GIT Локально - PullRequest
0 голосов
/ 08 апреля 2010

Я работаю над проектом, который первоначально использовал Subversion, но удаленный репозиторий был удален, и я больше не хочу использовать Subversion. Я хочу перенести его в git.

Есть ли способ сделать это без удаленного репозитория, сохраняя всю историю изменений (без выполнения git init .)?

Я уже сделал subversion для миграции git с помощью git-svn без проблем в других проектах, но они были в удаленном хранилище, и я не могу найти никакой информации о локальной миграции.

Ответы [ 4 ]

5 голосов
/ 08 апреля 2010

Subversion не похож на Git, он не хранит репозиторий в вашей рабочей папке, поэтому вы не сможете его перенести.

Вам нужно будет создать новый репозиторий и зарегистрировать его какесли бы это был новый код.

1 голос
/ 08 апреля 2010

Есть способ сделать это без удаленное хранилище, сохраняющее все история ревизий (без мерзавца init.)?

Краткий ответ: нет.

В отличие от git, subversion - это централизованная система контроля версий, то есть она хранит всю историю изменений на сервере .

Напротив, распределенные системы контроля версий, такие как git, mercurial или базар хранят всю историю изменений локально . В последнем случае вы действительно можете относительно легко импортировать / экспортировать между репозиториями. В первом случае вам нужно присутствие сервера.

0 голосов
/ 09 апреля 2010

Вы можете сохранить информацию из истории Subversion только в том случае, если вам удастся получить правильную резервную копию удаленного хранилища Subversion, которое было удалено.

В противном случае история теряется, и вам просто придется начинать с нуля.

Если у вас есть резервная копия (например, rsync-копия файлов репозитория SVN на сервере), вы можете выполнить локальное преобразование, используя git svn, указав его на локальную копию репозитория SVN через file:// URL без предварительной настройки сервера SVN.

0 голосов
/ 08 апреля 2010

«svn switch --relocate» для спасения [1].

Сначала вам нужно будет создать временный svn-репозиторий на любом обычном сервере, а затем переместить ваш «локальный» svn-репозиторий (он же рабочая копия) на этот сервер, зафиксировать его там, а затем использовать git-svn live you ' мы сделали раньше.


[1] http://webkit.org/blog/97/svn-repository-location-change/

...