Подтвердить что ты не робот

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

4b9b3361

Ответ 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" для деталей.