目前,我的团队正在使用 Mercurial。
在以前的工作环境中,我们使用 CVS,然后使用 Subversion,不知何故,当我们签入我们的 java 类时,某个字段被更新了。
public class MyObject
{
private static final String ID = "$Id: MyObject.java 10000 2008-11-14 16:20:10Z userid $";
// rest of class
}
$Id:
开头和结尾的$
用作正则表达式分隔符。当我们进行提交时,ID 字符串已更新,因此 10000 将增加到 10001,日期更新为提交时间,用户 ID 更新为提交者。这在查看已部署的代码并需要确切知道部署了哪个版本的类时会派上用场,因为您可以strings
对类文件执行命令并读取该字符串。
我们在 Maven 和更好的构建/依赖管理工具出现之前就开始这样做了,而且在大多数情况下,这不再需要了。
但是,我们遇到了这样一种情况,即项目被合并/更新,中央 Mercurial 存储库从某人的本地存储库中重建,并且正在完成构建以恢复 Maven 版本号......这有点混乱。我们不确定当前部署了哪些版本的类。
有什么方法可以设置 Mercurial 在提交或推送到中央存储库时执行此类更新?我什么都没找到,但有时那是因为搜索词有误。