我有一个已正确设置且工作正常的现有仓库。我从repo中删除了整个项目文件夹,提交了更改,然后添加了不在VC下的同一文件夹的另一个版本。现在,当我尝试在新文件夹中添加或提交文件时,Mercurial似乎无法识别任何新文件。
使用TortoiseHg Windows资源管理器“提交”扩展程序,当我尝试提交文件夹(或其中的任何文件)时,对话框中不会显示任何文件。如果我右键单击并提交文件夹中的文件,则会出现一个弹出窗口,显示“找不到此操作的文件”。我不是Hg专家,虽然我已经使用它几个月没有任何障碍,但我非常坚持这个。有什么想法吗?
更新:我在下面添加了一个屏幕截图,显示了当我尝试添加新文件夹时会发生什么。文件夹中的所有文件似乎都没有被识别。
答案 0 :(得分:3)
我复制的项目是另一个仓库的一部分,因此它包含hg参考文件。我删除了这些,并且所有内容都完美地添加/提交。
答案 1 :(得分:1)
如果要将新文件提交到存储库,则必须先add
它。
在命令行上,这可以通过多种方式完成:
hg add
,可以添加文件或存储库及其包含的每个文件。hg addremove
添加所有新文件并删除已删除的文件。hg commit -A
或hg commit --addremove
,它们是hg add remove; hg commit
的相同内容和快捷方式。我不记得TortoiseHG中命令的确切位置,但我认为如果右键单击资源管理器中的文件夹,该选项应该存在。
我想我还记得提交窗口中的某个addremove
选项,但我可能会弄错。
<强> [UPDATE] 强>
根据您自己提供的答案,以下是解释为什么简单地添加文件无法正常工作:
由于新目录包含与存储库相关的信息(.hg
目录),因此Mercurial将其视为Subrepository。子存储库是另一个存储库,例如,它可以用于引用库的特定版本。
删除新位置的.hg
目录后,Mercurial不再将其视为Subrepo,您可以正常添加文件。