簡體   English   中英

SVN到HG:現在從HG變更集輸出SVN修訂版號

[英]SVN to HG: Now output SVN revision number from HG changeset

我使用Convert擴展將Subversion存儲庫轉換為Mercurial。 當我使用Tortoise HG查看新存儲庫時,我會在每個變更集中看到相應的源路徑和修訂版(參見圖像)。 Tortoise HG屏幕截圖,帶有HG Changeset和SVN源路徑/修訂版

有沒有辦法將這兩個寫入控制台? 理想情況下,我想要這樣的輸出:

hg:1147 svn:trunk@7201
hg:1146 svn:trunk@7200
...

我知道我可以使用帶模板選項的hg log來自定義輸出,但不知道如何獲取Subversion源路徑/修訂版。

編輯:看起來我想要的方式是不可能的。 svn源路徑/修訂版位於變更集內的一個名為extras的字段中(感謝@ Ry4en), hg loghg 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

新版本的hgsubversion添加了{svnrev}模板關鍵字。 這在hg help subversion有描述:

[...]

查找並顯示Subversion修訂版

為了揭示Mercurial變更集與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擴展了revsets以提供兩個新的選擇器:

  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)' 

使用Mercurial 1.6或更高版本時可以使用Revsets,並且可以通過多個Mercurial命令接受Revsets來指定修訂版。 有關詳細信息,請參閱“hg help revsets”。

它隱藏在變更集中名為extras的字段中,我不相信它有一個日志模板條目。 它可能會出現在hg export中,您可以從中進行grep,並且它當然可以通過編程方式獲得,但我認為沒有 - --template方式來獲取它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM