2

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

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

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

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

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

4

1 回答 1

3

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

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

于 2012-12-19T00:22:36.670 回答