Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Mercurial中处理定制的本地源文件_Mercurial_Tortoisehg - Fatal编程技术网

在Mercurial中处理定制的本地源文件

在Mercurial中处理定制的本地源文件,mercurial,tortoisehg,Mercurial,Tortoisehg,我们的4人团队目前使用svn,但我正在测试Mercurial。我们主要在C++和C上.NET上进行代码。我已经安装了OrtoiseHG,并使用hgsubversion推/拉现有的svn回购。团队中的其他开发人员将暂时留在svn上 我倾向于以某种特定的方式定制一些源文件(butchered是一个更好的术语),我不想把这些源文件推给其他开发人员。但我确实希望将这些自定义更改编译到我的项目版本中。普通文件与自定义文件的比率约为100:1 在mercurial中处理这些被销毁的文件的最佳方法是什么?我可

我们的4人团队目前使用svn,但我正在测试Mercurial。我们主要在C++和C上.NET上进行代码。我已经安装了OrtoiseHG,并使用hgsubversion推/拉现有的svn回购。团队中的其他开发人员将暂时留在svn上

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

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

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


我不可能是唯一的代码屠夫。让我知道你是怎么处理的。Git用户,我们也很高兴收到您的来信,我们还没有完全承诺使用hg

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


如果它们是只有您才能修改的文件,那么最好的方法就是学习Mercurial队列。然后,您可以
pop
仅对更改进行更改,推送到中心repo,然后再次将其应用于构建。有各种扩展可以做类似的事情(例如,
shelve
),但mq更可取,因为您可以对弹出并应用的覆盖进行版本设置。

我们有一个符合示例模型的db配置文件,但我的问题涉及到我以其他人不会重复的方式调整的源文件。起初,我对你的建议嗤之以鼻。但我开始明白了。MQ解决了我需要的其他问题(暂时搁置未准备好提交的修改,以便我可以从svn中执行拉式操作),它正慢慢地被一些非常令人惊奇的东西所取代,但是如果你对许多文件有很多零散的更改,而你无法将这些更改提取到单独的包含文件中,那么现在肯定是该走的路了。