如何让mercurial注意添加到子目录中的文件?(hg st,hg add)

GJ.*_*GJ. 9 mercurial subdirectory

如果我将新文件添加到项目的根目录中,则会显示?状态hg st,并添加hg add.

但是,如果我将一个新文件添加到子目录中,它根本不会出现hg st,只有在我显式添加文件时才会添加(即使我添加了包含该文件的目录).

我怎样才能注意到子目录中的文件,与subversion如何注意到它们的方式类似?

谢谢

ang*_*son 15

好吧,hg add没有任何额外参数的普通文件也会在子目录中添加文件,它基本上会添加状态未知的所有文件进行跟踪.

但是,如果指定一个简单的掩码,它只对您当前的工作目录(即hg命令的工作目录,而不是与存储库关联的工作目录)进行操作,所以如果您当前位于子目录中,它会添加这些文件,如果你在根目录中,它会添加这些文件.

换句话说,这个:

hg add test*
Run Code Online (Sandbox Code Playgroud)

仅对您当前所在目录中的文件进行操作.

您可以通过指定一个掩码来覆盖该行为,该掩码告诉hg对子目录进行操作:

hg add **/test*
Run Code Online (Sandbox Code Playgroud)

这表示"在当前目录和所有子目录中添加与'test*'匹配的所有文件.

如果删除其中一个星号,则只能操作当前工作目录的子目录.

如果您发布了您执行的特定命令,输出(如果有)以及hg st之前和之后的输出,这将有所帮助.