1

我正在尝试使用本地分布式版本控制系统 (Mercurial) 来镜像我的公司 Starteam CM 服务器。由于 Starteam 在结帐功能上的关键字扩展,我在看到许多变化时遇到了问题。例如,服务器设置为将 $History 扩展为每个签入评论和其他元数据的日志。当我尝试合并时,这些通常会导致烦人的冲突。

我可以手动“取消扩展”关键字,但代码库非常大,这将花费非常长的时间。

4

2 回答 2

1

如果关键字看起来像 CVS/RCS 关键字($Id$等等),那么与 Mercurial 捆绑的关键字扩展可能有助于解开这些关键字。但不幸的是它只支持简单的关键字,而且听起来会像CVS 关键字一样$History递增扩展。$Log$

但也许您可以使用关键字扩展作为起点?

于 2009-05-22T21:22:39.470 回答
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,但必须有某种方法来识别历史块的结尾(空白行是猜测),并且改变了pe​​rl行以反映你应该很好去。

于 2009-07-12T16:53:50.510 回答