我正在尝试使用本地分布式版本控制系统(Mercurial)镜像我的公司Starteam CM服务器。由于Starteam在结帐功能上的关键字扩展,我遇到了很多变化,我遇到了问题。例如,服务器设置为将$ History扩展为每个签入注释和其他元数据的日志。当我尝试合并时,这些经常会引起恼人的冲突。
我可以手动“取消扩展”关键字,但代码库非常大,这将花费极长的时间。
答案 0 :(得分:1)
如果关键字看起来像CVS / RCS关键字($Id$
等),那么与Mercurial捆绑在一起的keyword extension可能有助于扩展那些关键字。但不幸的是,它只支持简单的关键字,听起来$History
会像$Log$
CVS关键字一样逐步扩展。
但也许您可以使用关键字扩展作为起点?
答案 1 :(得分:0)
mercurial方面的另一个选择是使用precommit
挂钩自动取消扩展starteam结帐文件中的关键字。
~/.hgrc
中的类似内容可能会解决问题:
[hooks]
precommit.unexpand_starteam = find . -name '*.cpp' -print0 | xargs -0 perl -pie 's/$History.*?\n\n//m' ; exit 0
在提交之前,这将删除$ History到每个文件中第一个空行的所有内容。我没有使用starteam,但必须有一些方法来识别历史块的结尾(空白行是一个猜测),并改变perl行以反映你应该好好去。