Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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 - Fatal编程技术网

Mercurial 如何防止删除被忽略的文件?

Mercurial 如何防止删除被忽略的文件?,mercurial,Mercurial,几个月前,我在默认分支上控制了一个项目设置文件夹的版本,然后随着时间的推移,在默认分支之外创建了许多分支。现在我决定不控制project settings文件夹的版本,因为在分支之间切换时会产生很多问题 因此,我已经忘记了这个项目设置文件夹,它允许我将文件保存在本地机器上,但删除了mercurial。但是,当从一个仍有此文件夹版本的旧分支切换回默认分支时,实际上会从本地计算机上删除文件,这是不好的 我如何防止这种情况 默认情况下,文件夹也位于.hgignore中。这是不可能的 但通常的做法是将c

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

因此,我已经忘记了这个项目设置文件夹,它允许我将文件保存在本地机器上,但删除了mercurial。但是,当从一个仍有此文件夹版本的旧分支切换回默认分支时,实际上会从本地计算机上删除文件,这是不好的

我如何防止这种情况

默认情况下,文件夹也位于
.hgignore
中。

这是不可能的

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

这是不可能做到的


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

处理此问题的标准方法是对模板配置文件进行版本控制,而忽略真正的配置文件。然后,真正的配置文件可以包含模板文件,或者偶尔复制一次模板文件

出现问题的根本原因是:

$ hg forget config.ini
与跑步完全相同:

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

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

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

出现问题的根本原因是:

$ hg forget config.ini
与跑步完全相同:

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

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

对不起,我说的“项目设置”是指IDE创建的,与我的框架无关。我明白为什么会这样,但我希望有一个聪明的方法来解决这个问题。。。也许有些脚本会进入每个分支,然后忽略这些文件,因此当我切换分支时,它对这些文件没有任何作用。我担心您必须删除这些文件并在每个分支上自己更新忽略文件。对不起,我说的“项目设置”是指IDE创建的那些,与我的框架无关。我明白为什么会这样,但我希望有一个聪明的方法来解决这个问题。。。也许有些脚本会进入每个分支,然后忽略这些文件,这样当我切换分支时,它就不会处理这些文件。恐怕您必须删除这些文件,并在每个分支上自己更新忽略文件。