提问人:H. Weirauch 提问时间:7/31/2016 更新时间:7/31/2016 访问量:195
Mercurial:重命名后识别文件名
Mercurial: Identify file name after rename
问:
Mercurial 在整个重命名过程中跟踪文件的内容 (),因此它还会显示以前使用其原始标识所做的逐行更改。这很好用。hg mv $OLD $NEW
hg annotate $NEW
$OLD
但是似乎没有直接的方法来找出文件的名称,某些给定的行属于 的祖先。 仅适用于变更集。$OLD
$NEW
hg annot $NEW -r$REV
rename
当然,这些信息是可以以某种方式访问的,例如,通过爬行(没有)并用一些(或通过单击Web界面)来识别重命名。
但这种“工作流程”不仅令人讨厌且容易出错,而且[最重要的是]它不是非交互式/可编写脚本的。hg log
--follow
hg log -r$RENAMEREV -g -p
hg serve
我的问题是:有没有办法获取/构建
- 的文件名历史记录的一些列表(最好具有相应的修订范围),或者
$NEW
- 提交哪一行的文件的名称(某种文件名选项)?
$LINE
hg annot
感谢 CLI 或 Python/hglib 中的想法。hg
答:
0赞
Martijn Pieters
7/31/2016
#1
在模板中包含关键字:{file_copies}
hg log
$ hg init demo
$ cd demo
$ touch a
$ hg ci -Am 'file a'
adding a
$ hg mv a b
$ hg ci -Am 'moved to file b'
$ hg log -r . -T"{file_copies}\n"
b (a)
设置标志时,内置模板将包含文件复制信息:status
--copies
$ hg log -r 1 -Tstatus --copies
changeset: 1:b37952faaddc
tag: tip
user: Martijn Pieters <[email protected]>
date: Sun Jul 31 16:07:04 2016 +0100
summary: moved to file b
files:
A b
a
R a
所以文件取自 .b
a
请参阅日志输出中可以包含的更多内容。hg help template
评论