2014-02-14 2 views
5

Я только что установил TortoiseHG V2.11 с Mercurial-2,9HG Преобразовать на SVN дает «не выглядит как Subversion Repository»

Я пытающегося преобразовать свои локальные репозитории Subversion, созданные с помощью TortoiseSVN 1.8. 4, Subversion 1.8.5

Чтобы быть уверенными, что мое старое Subversion хранилище не имеет какие-либо странные причуд я создал новый SVN репо под названием test_repo со структурой папки по умолчанию, выполнил Checkout в test_repowc, затем добавил текст файлы на соединительную линию, а затем несколько раз модифицировали и перенесли файлы, чтобы предоставить некоторую историю.

Затем я открыл cmd.exe, переходите к папке и попытался

hg convert test_repo 

и получил следующее:

assuming destination test_repo-hg 
initializing destination test_repo-hg repository 
test_repo does not look like a CVS checkout 
test_repo does not look like a Git repository 
file:///C:/Users/xxxxxx/Documents/Subversion/test_repo does not look like a Subversion repository 
test_repo is not a local Mercurial repository 
test_repo does not look like a darcs repository 
test_repo does not look like a monotone repository 
test_repo does not look like a GNU Arch repository 
test_repo does not look like a Bazaar repository 
cannot find required "p4" tool 
abort: test_repo: missing or unsupported repository 

Как вы можете видеть, Mercurial сделал файл: /// протокол для меня, но не смог распознать репозиторий subversion. Я пробовал сам выполнить файл: ///, указав тип репозитория с флагом -s, запустив Mongoose в папке и получив доступ к репозиторию в качестве URL-адреса, и ни один из них не работает. Я также попытался преобразовать из рабочей копии, а не из репозитория, но это тоже не работает.

Мне интересно, связано ли это с новой структурой SVN-файла, введенной SVN 1.7 или 1.8 (что некоторые клиенты SVN несовместимы с какой-то ситуацией)?

Неужели кому-то еще повезло с этим использованием текущих версий TortoiseSVN и TortoiseHG?

Я был намереваюсь, чтобы это было очень быстро, чтобы перейти, все взволнованы DVCS и Mercurial, и я уже ударил стену. Я читал много людей, говорящих, что это было просто, но у меня есть причудливый краевой случай, или это не так просто, как звуки слухов.

Я читал о других инструментах, таких как HGSubversion, где я мог бы клонировать SVN как репозиторий HG, но поскольку это сольные репозитории, я бы скорее просто преобразовал SVN, убедитесь, что все работает, а затем удаляет и удаляет SVN. Я предпочел бы, чтобы мой репозиторий HG еще не был «подключен» к SVN (HGSubversion позволяет «нажать» из клонированного репо HG в родительский SVN-репо?). Другие инструменты имеют смешанные отзывы, поэтому я надеялся, что работа над конвертом будет работать.

Заранее спасибо - с нетерпением жду Mercurial!

EDIT:

Документирование решения для Windows:

  1. Откройте командную строку
  2. Перейдите в репозиторий SVN (не рабочая копия)
  3. пробега svnserve -r .\ -d
  4. Открыть другие Командная строка
  5. Перейдите туда, где вы хотите, чтобы ваше меркурийное репо
  6. Необязательно: Запустите where hg ... если версия TortoiseHg не первая, отредактируйте путь, чтобы сделать ее первой - эта версия включает в себя связки SVN-питона, которые необходимы для использования протокола svn://. Перезагрузите приглашение cmd после редактирования пути.
  7. пробег hg convert -s svn svn://localhost .\hg_repo_name

    • Я сделал computername.full.domain.name вместо локального хоста, но локальный должен работать тоже.
    • svn:// направления слэша как http:// и file:/// не нравятся C:\
    • Если ваш код SVN репо не ствол или не использовать папку магистральной (я не сделал для моей первых сделок РЕПО, потому что я Жду» знает, что я делаю), вам это нужно, что говорит ртутным использовать корневой каталог, как ствол:

    hg --config config.svn.trunk= convert -s svn svn:\\localhost .\hg_repo_name

    • Я просто имел репо SVN, где я импортируемый папку коды в корень, но не в туловище ... Я попытался использовать приведенный выше код, чтобы установить соединительную линию равным имени папки кода, но это не сработает ... однако, когда я добавил имя папки в URL-адрес svn, это сработало :

    `рт.ст. конвертировать SVN:. //%computername%.domain.com/code_folder \ hg_repo_name

удачи!

+0

Альтернативой (и, возможно, быстрее, если у вас есть под рукой) решение для использования виртуальной машины Linux для выполнения задания. – gmas80

ответ

6

Как Convert wiki состояний

Предпосылки: Python переплеты

в Subversion

и это кажется привязок Python еще не обновляется (по крайней мере) для использования ra_local с 1.8+ репозиториев.

У вас есть два варианта

  • Создание 1,7-совместимые локального SVN-репозитория для последующего преобразования

OldRepo>svnadmin create --compatible-version "1.7" .

>svn log file:///Z:/OldRepo 
------------------------------------------------------------------------ 
r1 | Badger | 2014-02-15 00:30:22 +0600 (Сб, 15 фев 2014) | 1 line 

Create initial state 
------------------------------------------------------------------------ 
>hg convert file:///Z:/OldRepo HG2-Repo 
initializing destination HG2-Repo repository 
scanning source... 
sorting... 
converting... 
1 Create initial state 
0 Create initial state 

Тот же результатом после клонирования OldRepo использования HGSubversion

>hg clone file:///Z:/OldRepo HG-Repo 
[r1] Badger: Create initial state 
pulled 2 revisions 
updating to branch default 
1 files updated, 0 files merged, 0 files removed, 0 files unresolved 
  • Использование любой сервер для доступа к хранилищу 1.8+ (Svnserve это самый простой способ). Я не пробовал SVN: // хранилище, но испытано удаленный HTTP обслужен хранилище 1.8 Subversion

Просто образец

hg clone https://subversion.assembla.com/.... 
... 
25 files updated, 0 files merged, 0 files removed, 0 files unresolved 
+0

Спасибо, я использую svnserve для размещения репо, который затем позволяет hg convert работать. Мне пришлось использовать svn: // для его работы. Большое спасибо! – flutefreak7

+0

Просто потратил более часа на то, чтобы это снова заработало ... Оказывается, моя проблема в том, что я работал с svnserve в рабочей копии вместо репозитория (простая опечатка с моим бедным именем папок) - если кто-то еще это делает , не делай моей ошибки! – flutefreak7

+0

Это решение не работало для меня! Если кто-то другой имеет такую ​​же проблему, попробуйте сделать преобразование на виртуальной машине, подобной Ubuntu. Я сделал, и это сработало с первого шанса! Я предполагаю, что проблема в Windows связана с привязками Python от Subversion. – gmas80