Mercurial 如何制作';hg log——冗长';在多行上显示文件?
默认情况下,在变更集中更改的所有文件都在同一行,这使得它们很容易跳过一两个,并且很难读取Mercurial 如何制作';hg log——冗长';在多行上显示文件?,mercurial,windows-xp,Mercurial,Windows Xp,默认情况下,在变更集中更改的所有文件都在同一行,这使得它们很容易跳过一两个,并且很难读取 如何使每个文件单独显示在一行中?我认为没有内置的方法来实现这一点,但是一点sed(也适用于Windows:)可以帮助: hg log --template "Rev: {rev}:{node}\nDate: {date|isodate}\nFiles: {files}\n\n" -l 10 | sed -e '/^Files:/s/ /\n /g' 输出: Rev: 1:2538bd4661c755cc
如何使每个文件单独显示在一行中?我认为没有内置的方法来实现这一点,但是一点sed(也适用于Windows:)可以帮助:
hg log --template "Rev: {rev}:{node}\nDate: {date|isodate}\nFiles: {files}\n\n" -l 10 | sed -e '/^Files:/s/ /\n /g'
输出:
Rev: 1:2538bd4661c755ccab9b68e1d5e91144f6f97d33
Date: 2011-12-20 15:47 +0100
Files:
test1.txt
Rev: 2:853a6f3c505308c9babff5a5a2f1e09303f1689c
Date: 2011-12-20 15:44 +0100
Files:
test2.txt
test3.txt
sed-e'/^文件的解释:/s/\n/g'
:
/^Files:///code>搜索以“Files:”开头的行,并将以下搜索和替换仅应用于这些行
s//\n/g
将所有行替换为换行符,后跟空格当文件名包含空格时,此解决方案不起作用。查看已更改文件信息的真正方法是使用
hg status
。这显示了在修订版100中修改的文件:
$ hg status -c 100
但是,如果您也想要日志消息,那么hglog
当然是一个自然的起点。不幸的是,没有内置的开关可以使它每行显示一个文件
但是,hglog
的输出由一个控件控制,您可以为它编写自己的样式。默认样式为,您可以通过更改自定义以执行所需操作
file = ' {file}'
到
然后将新样式另存为my default.style
并添加
[ui]
style = ~/path/to/my-default.style
到您的配置文件。这将为每行提供一个文件,甚至在文件名中有空格时也可以使用
我意识到一个问题:在hg日志输出中丢失颜色。原来Mercurial在这里作弊!它实际上并没有使用我在生成日志输出时向您展示的默认模板。它根本不使用任何模板系统,它只是使用直接代码生成输出,因为这样更快。问题是,颜色扩展仅适用于硬编码模板。当切换到自定义模板并因此调用模板引擎时,将丢失颜色输出
但是,可以通过将直接插入模板(在类Unix系统上)来恢复颜色。改变
changeset = 'changeset: {rev}:{node|short}\n{branches}...
到
该技巧和硬编码是否为变更集设置黄色标题行。调整changeset\u verbose
和changeset\u quiet
行,您将使用自己的模板获得彩色输出。
hg日志--样式更改日志
或
hg log--template“Description:{desc}\n”
列出了支持的关键字,如desc、files等
该文件的示例中包含此gem
格式列表,例如文件:
$hg log-r 0--模板“文件:\n{files%'{file}\n'}”
这在Windows上运行,无需任何翻译。要查看修订版中更改的所有文件,请使用:
hg status --change REV
就我的一生而言,我无法让它发挥作用。我已经设置了style=“path to my file\my style.default”行,Hg只是不断地说“abort:style not found:“path to my file\my style.default”…?你可能知道吗?你是否在文件名周围使用了双引号?如style=“the path”中所示“
?令人惊讶的是,Mercurial配置文件中没有引用配置值,因此它应该是style=path
。A-ah,您应该知道-没有双引号。是的,我的错误。。。现在可以了。我没想到。马丁,你是Mercurial的信息宝库!:)
changeset = '\033[33mchangeset: {rev}:{node|short}\033[0m\n{branches}...
hg status --change REV