某些情境:
我正在尝试实施K. Scott Allen's technique for database schema versioning,并且由于此特定项目的不断发展,我们选择使用更简单的1.sql, 2.sql, 3.sql, ..., n.sql
编号方案,而不是那里提到的版本控制方案
但是,这通常会导致两个不同分支中的架构更改导致创建相同的新文件{n+1}.sql
的情况。
我使用Mercurial作为我的版本管理软件,特别是使用默认diff软件的Windows上的TortoiseHG。当我将开发分支合并到stable
时,Mercurial检测到冲突,但提供合并这两个文件。理想情况下,其中一个需要重命名为{n+2}.sql
。
这可以通过两种方式完成:首先,可以推迟合并提交并在那里编辑文件。但是,在此阶段,合并文件{n+1}.sql
是一个或两个文件都不混合的混合文件。
第二种方法是撤消合并,转到开发分支,重命名文件,重新发布,重新合并。
我的问题:
在合并时,是否可以让Mercurial在不同的分支中将每个创建的文件与不同分支中仅 modified 的文件区别对待?
理想情况下,如果我遇到问题,合并后,使用{x+1}.sql
和{x+1}.sql.mergebranch
进行预提交,那么很明显需要重命名哪个文件,生活会更简单。