2015-08-21 54 views
0

我想获取变更集中所有已更改的文件,但没有指定更改类型的字母。获取变更中的所有更改文件

我知道这个命令

hg status --change changeset 

然而,这返回的结果一样,

A /path/to/file 
M /path/to/file 

我想要的结果是

/path/to/file 

没有 “A” 或 “M” 。我试图用正则表达式来实现它,它曾经工作,但我不知道它在一种情况下不起作用。

正则表达式,

/(?<=[MA]\s).+/ 

这没有奏效

arwa/Documents/Projects/firefox/M db << notice M here. 

任何思想的情景?

回答

1

您应该添加^(行的开始)到你的正则表达式:

/(?<=^[MA]\s).+/ 

如果你不这样做,将(?<=[MA]\s)的lookabehind部分M.+会赶上db

1

从Mercurial 3.5开始,您可以使用模板(仍然是一个实验性功能,您可以使用hg help status -v来查看它)。即:

hg status --change <rev> --template '{path}\n' 
1

为什么不使用模板日志?

hg log -r CSET -T "{files % '{file}\n'}" 

会产生干净的输出

lang/UTF-8/serendipity_lang_ru.inc.php 
plugins/serendipity_event_bbcode/UTF-8/lang_ru.inc.php 
plugins/serendipity_event_emoticate/UTF-8/lang_ru.inc.php 
plugins/serendipity_event_karma/UTF-8/lang_ru.inc.php 
plugins/serendipity_event_s9ymarkup/UTF-8/lang_ru.inc.php 
plugins/serendipity_plugin_shoutbox/UTF-8/lang_ru.inc.php 

违背模板状态

'lang\UTF-8\serendipity_lang_ru.inc.php 
''plugins\serendipity_event_bbcode\UTF-8\lang_ru.inc.php 
''plugins\serendipity_event_emoticate\UTF-8\lang_ru.inc.php 
''plugins\serendipity_event_karma\UTF-8\lang_ru.inc.php 
''plugins\serendipity_event_s9ymarkup\UTF-8\lang_ru.inc.php 
''plugins\serendipity_plugin_shoutbox\UTF-8\lang_ru.inc.php 
' 
+0

谢谢,我喜欢这种解决方案 – Arwa

相关问题