Как импортировать удаленный путь в SVN-репозитории в GIT или Mercurial - PullRequest
1 голос
/ 08 декабря 2010

Мне нужно немного изучить источники в svn-удаленном пути в репозитории svn нашей компании. Поскольку мне нужно много работать с аннотированием, я хочу иметь историю в Mercurial или Git. Я пытался до сих пор:

  • hgsubversion и git-svn : для обеих программ я не могу найти способ указать, что мне нужна более старая ревизия, в которой существовал путь, и попробуйте svn HEAD и не удалось, поскольку путь там удален.
  • hgsvn : он находит старый путь (с ревизией разметки), но не может выполнить первоначальное обновление, так как хочет получить журнал из ревизии svn HEAD, где искомый путь не ' больше не существует.

Так есть ли способ импортировать удаленный путь SVN в Git или HG?

Ответы [ 3 ]

1 голос
/ 08 декабря 2010

Предполагая, что путь был удален в ревизии 117, с hgsubversion должно работать следующее:

hg clone -r 116 http://svn.example.com/whereever

(Я не проверял это недавно, но оно должно работать. Если это не так, это ошибка ...)

Вы также должны заметить, что, несмотря на заявления Хмарбайса, закрытие ветви в Mercurial не удаляет ее из истории. Закрытие ветви просто скрывает ее от hg heads, если не задан аргумент -c/--closed.

0 голосов
/ 08 декабря 2010

Из вашего вопроса непонятно, зачем вам нужен git или hg.Вы можете просто использовать svn annotate.Для анализа удаленных объектов в SVN нет проблем, вы можете использовать ревизию колышка , например, так:

svn annotate http://example.com/svn/somefile@321

Это будет работать, даже если какой-то файл был удален или переименован некоторое времяпосле ревизии 321.

edit: Подумав об этом, я думаю, вы хотите hg / git, потому что наличие локальной копии хранилища может значительно ускорить аннотацию.Вы можете добиться того же с помощью svn, создав зеркальный репозиторий в локальной файловой системе с помощью svnsync и получив доступ к нему с помощью file:/// URL.

0 голосов
/ 08 декабря 2010

Насколько я знаю, ни git, ни hg не способны обрабатывать удаленные пути. Если вы удалите ветку в git, то ветка удаляется из истории.

...