【问题标题】:How to prevent ignored files from being removed?如何防止被忽略的文件被删除?
【发布时间】:2012-08-20 23:31:15
【问题描述】:

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

所以我 hg forget'd 这个项目设置文件夹让我可以将文件保留在本地计算机上,但会反复删除它们。但是,当从仍然有此文件夹版本的旧分支之一切换回默认分支时,它实际上会从本地计算机中删除文件,这很糟糕。

如何防止这种情况发生?

该文件夹现在默认也在.hgignore中。

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    这是不可能的。

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

    【讨论】:

      【解决方案2】:

      处理这个问题的标准方法是对模板配置文件进行版本控制并忽略真正的配置文件。然后真正的配置文件可以包含模板文件,或者模板文件有时会被复制一次。

      你的问题的根本原因是运行:

      $ hg forget config.ini
      

      与跑步完全一样

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

      忘记命令将文件留在您的工作目录中,但您提交的仍然是文件删除。这意味着之后,Mercurial 无法区分“文件被遗忘”和“文件被删除”——只有删除被提交,所以这两个命令看起来完全一样。

      【讨论】:

      • 对不起,当我说“项目设置”时,我的意思是我的 IDE 创建的那些,与我的框架无关。我理解它为什么会发生,但我希望有一些聪明的方法来解决这个问题......也许一些脚本会进入每个分支然后忽略文件,这样当我切换分支时它对这些文件什么都不做。
      • 恐怕你必须删除文件并在每个分支上自己更新忽略文件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 2018-12-29
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      相关资源
      最近更新 更多