如何防止被删除的文件被删除?

时间:2012-08-20 23:31:15

标签: mercurial

我的版本在我的默认分支上几个月后控制了一个项目设置文件夹,然后随着时间的推移创建了许多默认分支。现在我已经决定我不想控制项目设置文件夹版本,因为它在分支之间切换时会产生很多问题。

所以我hg forget这个项目设置文件夹让我可以将文件保存在我的本地机器上,但是将它们删除。但是,当从仍然具有此文件夹版本的旧分支切换回默认分支时,它实际上从本地计算机中删除了文件,这是不好的。

我该如何预防?

该文件夹现在默认为.hgignore

2 个答案:

答案 0 :(得分:2)

这是不可能的。

但通常的做法是将config.ini.dist保留在您的存储库中,并在检查源代码后立即通过某个构建系统构建特定于环境的配置。

答案 1 :(得分:1)

处理此问题的标准方法是版本控制模板配置文件并忽略实际配置文件。然后,真实的配置文件可以包含模板文件,或者模板文件可能会偶尔复制一次。

您遇到问题的根本原因是:

$ hg forget config.ini

完全相同正在运行:

$ hg remove config.ini
$ hg cat config.ini > config.ini

forget命令会将文件留在工作目录中,但您提交的内容仍然是文件删除。这意味着之后,Mercurial无法区分“文件被遗忘”和“文件被删除” - 只提交删除,因此这两个命令看起来完全相同。