Mercurial无法识别存储库中的新文件夹

时间:2012-02-13 18:26:45

标签: version-control mercurial tortoisehg

我有一个已正确设置且工作正常的现有仓库。我从repo中删除了整个项目文件夹,提交了更改,然后添加了不在VC下的同一文件夹的另一个版本。现在,当我尝试在新文件夹中添加或提交文件时,Mercurial似乎无法识别任何新文件。

使用TortoiseHg Windows资源管理器“提交”扩展程序,当我尝试提交文件夹(或其中的任何文件)时,对话框中不会显示任何文件。如果我右键单击并提交文件夹中的文件,则会出现一个弹出窗口,显示“找不到此操作的文件”。我不是Hg专家,虽然我已经使用它几个月没有任何障碍,但我非常坚持这个。有什么想法吗?

更新:我在下面添加了一个屏幕截图,显示了当我尝试添加新文件夹时会发生什么。文件夹中的所有文件似乎都没有被识别。

enter image description here

2 个答案:

答案 0 :(得分:3)

我复制的项目是另一个仓库的一部分,因此它包含hg参考文件。我删除了这些,并且所有内容都完美地添加/提交。

答案 1 :(得分:1)

如果要将新文件提交到存储库,则必须先add它。

在命令行上,这可以通过多种方式完成:

  1. hg add,可以添加文件或存储库及其包含的每个文件。
  2. hg addremove添加所有新文件并删除已删除的文件。
  3. hg commit -Ahg commit --addremove,它们是hg add remove; hg commit的相同内容和快捷方式。
  4. 我不记得TortoiseHG中命令的确切位置,但我认为如果右键单击资源管理器中的文件夹,该选项应该存在。

    我想我还记得提交窗口中的某个addremove选项,但我可能会弄错。

    <强> [UPDATE]

    根据您自己提供的答案,以下是解释为什么简单地添加文件无法正常工作:

    由于新目录包含与存储库相关的信息(.hg目录),因此Mercurial将其视为Subrepository。子存储库是另一个存储库,例如,它可以用于引用库的特定版本。

    删除新位置的.hg目录后,Mercurial不再将其视为Subrepo,您​​可以正常添加文件。