SVN to HG: теперь выведите номер версии SVN из набора изменений HG
Я преобразовал репозиторий Subversion в Mercurial, используя расширение Convert. Когда я смотрю на новый репозиторий с Tortoise HG, я вижу в каждом наборе изменений соответствующий исходный путь и ревизию (см. Изображение). ![Tortoise HG Screenshot with HG Changeset and SVN source path/revision]()
Есть ли способ записать эти два на консоль? В идеале я хотел бы получить такой вывод:
hg:1147 svn:[email protected]
hg:1146 svn:[email protected]
...
Я знаю, что я могу использовать hg log
с параметром шаблона для настройки вывода, но не знаю, как получить исходный путь/ревизию Subversion.
EDIT:
Похоже, способ, которым я хотел пойти, невозможен. Исходный путь/ревизия svn находится в поле с именем extras
внутри набора изменений (спасибо @Ry4en), и ни hg log
, ни hg export
не выводит это значение. Теперь я попробую использовать файл .hg/shamap
в сочетании с
hg log --template 'hg:{rev} nodeid:{node}'
Чтобы отобразить версию Mercurial в исходный путь/версию SVN.
EDIT2:
Моя версия Mercurial - 1.4.3.
С Mercurial 1.7.1 можно использовать эту команду (спасибо @Wim Coenen): hg log --template {node}\n{extras}\n\n
Ответы
Ответ 1
Он спрятался в поле с именем extras
в наборе изменений, и я не думаю, что для него есть запись в шаблоне журнала. Он может отображаться в hg export
, из которого вы могли бы grep его, и он, конечно, доступен программно, но я не думаю, что есть способ --template
получить его.
Ответ 2
В новых версиях hgsubversion добавлено ключевое слово {svnrev}
. Это описано в hg help subversion
:
[...]
Поиск и отображение ревизий Subversion
Для выявления взаимосвязи между Mercurial changesets и Subversion ревизии, hgsubversion предоставляет три ключевых слова шаблона:
svnrev Expanded to the original Subversion revision number.
svnpath The path within the repository that the changeset represents.
svnuuid The Universally Unique Identifier of the Subversion repository.
Пример:
$ hg log --template='{rev}:{node|short} {author|user}\nsvn: {svnrev}\n'
Ключевые слова шаблона доступны при использовании Mercurial 1.5 или более поздней версии.
Для поиска наборов изменений из Subversion hgsubversion расширяет число оборотов до предоставить два новых селектора:
fromsvn Select changesets that originate from Subversion. Takes no
arguments.
svnrev Select changesets that originate in a specific Subversion
revision. Takes a revision argument.
Например:
$ hg log -r 'fromsvn()'
$ hg log -r 'svnrev(500)'
Revsets доступны при использовании Mercurial 1.6 или более поздних версий и принимаются несколькими командами Mercurial для указания версий. См. "Справка hg revsets" для деталей.