我有一个文件(某种数据库),随着开发人员测试他们的代码并推送到中央 mercurial 存储库,它会更新。
我希望每个人都重用这个文件,因此每当我们的中央存储库有拉取/更新时,本地版本应该被集中存储的替换。换句话说,我只想hg update -C
为那个文件做一个,并在拉动时自动完成。
这可能与水银有关吗?
开发人员可以添加一个钩子来执行此操作,但您不能制作它们(除非您可以控制他们的机器)。
克隆.hg/hgrc
文件中的类似内容将删除本地文件,因此更新将其替换为新文件:
[hooks]
preupdate = rm path/to/databasefile
当然,请记住,该更新将放置文件的版本,因为它出现在用户正在更新的变更集中。因此,如果您这样做hg update --rev 0
,您将获得该文件的第一个版本,而不是最新版本中的那个。
顺便说一句,通常如果有一个文件发生了很大的变化并且无法合并,那么最好让它成为一个从带外获取的未跟踪/忽略的文件——例如,让你的启动脚本下载最新版本。