处理Mercurial中的自定义本地源文件

时间:2012-12-18 23:03:59

标签: mercurial tortoisehg

我们的4人团队目前使用svn,但我正在测试Mercurial。我们主要使用C ++和C#在.net上编码。我已经安装了TortoiseHg,并使用hgsubversion来推送/拉动现有的svn repo。团队中的其他开发人员现在仍将继续使用svn。

我倾向于以一些特定的方式定制一些我自定义的源文件(butchered将是一个更好的术语),我不想推送给其他开发人员。但我确实希望将这些自定义更改编译到我的项目版本中。普通文件与自定义文件的比例约为100:1

在mercurial中处理这些屠杀文件的最佳方法是什么?我可以简单地在提交期间取消选中butchered文件,但最终,我会忘记这一步。我简要地看了一下搁置和忽视。

忽略似乎不正确,因为这些是跟踪文件。我确实希望从其他人那里获取对屠宰文件的更改。搁架很接近,但它从我的工作副本中删除了屠宰代码,所以这也不正确。

我不能成为那里唯一的代码屠夫。让我知道你是如何处理这个问题的。 Git用户,我们也很高兴收到您的来信,我们还没有完全致力于使用hg。

1 个答案:

答案 0 :(得分:3)

如果他们是文件,大多数人都会修改(根据开发人员数据库帐户信息等),正确的方法是跟踪xxxxx.sample文件。例如,构建脚本使用local-database.config中的.hgignore并在存储库中提供local-database.config.sample文件。您可以在说明中包含“将示例复制到实际”,或者如果实际不存在,则让构建脚本自动执行。我们的配置包含settings.local,当且仅当它存在时,并允许它覆盖主设置。然后没有人需要本地配置,但它可以选择用于改变任何不承担风险的东西。

如果他们是文件,只有你将修改最好的方法是学习Mercurial队列。然后,您可以pop使用仅限您的更改进行更改,推送到中央存储库,然后再次为您的构建应用它。有各种类似的扩展(例如shelve),但mq更受欢迎,因为您可以对正在弹出和应用的叠加进行版本化。