当前位置:  开发笔记 > 编程语言 > 正文

Mercurial获取传入文件更改摘要的最佳方法

如何解决《Mercurial获取传入文件更改摘要的最佳方法》经验,为你挑选了1个好方法。

我一直试图解决是否有办法获得与传入的hg状态相同的信息.(这是使用hg版本1.9.2)

因此,如果你拉回购,你可以获得所有变化的摘要:

hg pull
hg status --rev .:default

然而,在拉入之前,最好的可用是:

hg incoming --stat

这对于显示已更改的文件很好.但是没有给出所有变更集的总体摘要.

现在我可以使用一些bash来总结所有文件:

hg in --rev default --template '< {desc|tabindent}\n' -q | sed 's%\t%<   %'
filechanges=`hg in --rev default --template '{files} ' -q`
echo ${filechanges} | xargs -n1 | sort -u | sed -e 's%^%. %'

现在我可以使用我基于默认〜/ hgtemplates/map-cmdline.files创建的样式来显示"添加,删除,修改":

# specify a changeset
changeset_verbose = 'changeset: {node} {rev} {branch}\ndescription:\n{desc|tabindent}\nFiles:\n{file_mods}{file_adds}{file_dels}{file_copies_switch}\n'
changeset = 'desc: {desc|tabindent}\nFiles:\n{file_mods}{file_adds}{file_dels}{file_copies_switch}\n'
changeset_quiet = '{file_mods}{file_adds}{file_dels}{file_copies_switch}\n'

# Using hg status prefixes

# Modified M prefix
start_file_mods = ''
file_mod = 'M {file_mod}\n'
end_file_mods = ''

# Added A prefix
start_file_adds = ''
file_add = 'A {file_add}\n'
end_file_adds = ''

# Deleted ! prefix
start_file_dels = ''
file_del = '! {file_del}\n'
end_file_dels = ''

# Copies C prefix ??????
start_file_copies = 'copies:     '
file_copy = 'C {name} ({source})\n'
end_file_copies = ''

然后使用它:

hg in --style ~/hgtemplates/map-cmdline.files -q

但是我必须使用更复杂的合并脚本,可能是基于名称的perl哈希.

那么有扩展或模板的方法吗?

任何正确方向的指针?



1> Reimer Behre..:

首先,您需要了解hg incoming通过线路发送相同的数据hg pull.这在许多情况下都很浪费(你只想查看日志),但是当你需要额外的信息时这很好.

因此,您可以利用--bundle将拉取数据存储在临时位置的选项,然后将该捆绑包用作只读叠加存储库.

以下应该能够满足您的需求:

hg incoming --bundle .hg/changes.hg
hg status -R .hg/changes.hg --rev 'bundle()'

此外,当然还有您可能想要执行的任何其他只读存储库操作hg -R .hg/changes.hg.revset bundle()将包含所有传入的修订.请注意,虽然我在--rev这里跟随你使用,但我想你可能真的想要这个--change选项.

并且,一旦满意,您不必再次通过网络进行更改,但可以直接从捆绑中获取它们:

hg pull .hg/changes.hg

请注意,您可以将捆绑文件放在任何您想要的位置,但不一定如此.hg/changes.hg.

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有