如何让 Mercurial 注意到添加到子目录中的文件? (汞标准,汞添加)

发布于 2024-10-09 17:42:27 字数 268 浏览 8 评论 0原文

如果我将一个新文件添加到项目的根目录中,它会在 hg st 中显示为 ? 状态,并通过 hg add 添加。

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

我怎样才能让 Mercurial 注意到子目录中的文件,就像 subversion 注意到它们一样?

谢谢

If I add a new file into my project's root, it appears with a ? status in hg st, and gets added with hg add.

However, if I add a new file into a subdirectory, it doesn't appear in hg st at all, and only gets added if I explicitly add the file (not even if I add the file's containing directory).

How can I get mercurial to notice files in subdirectories, in a similar way to how subversion notices them?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沧笙踏歌 2024-10-16 17:42:27

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

但是,如果您指定一个简单的掩码,它只会在您当前的工作目录(即 hg 命令的工作目录,而不是与存储库关联的工作目录)上运行,因此如果您当前位于子目录中,它将添加这些文件,如果您位于根目录中,它将添加这些文件。

换句话说,这:

hg add test*

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

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

hg add **/test*

这表示“添加当前目录和所有子目录中与“test*”匹配的所有文件。

如果删除其中一个星号,则仅对当前工作目录的子目录进行操作,

如果您发布了执行的具体命令以及输出(如果有)以及前后的 hg st 输出,将会有所帮助。

Well, plain hg add without any extra arguments adds files in sub-directories as well, it basically adds all files with status unknown to be tracked.

However, if you specify a simple mask, it only operates on your current working directory (ie. the working directory of the hg command, not the working directory associated with the repository), so if you're currently situated in the sub-directory, it will add those files, if you're in the root directory, it will add those files instead.

In other words, this:

hg add test*

Only operates on files in the directory you're currently situated.

You can override that behavior by specifying a mask that tells hg to operate on sub-directories:

hg add **/test*

This says "add all files that match 'test*' in the current directory and all sub-directories.

If you remove one of the asterixes, you only operate on sub-directories of the current working directory.

It would help if you posted what specific commands you executed, and the output, if any, and the output of hg st before and after.

轻拂→两袖风尘 2024-10-16 17:42:27

您也在子目录中hg init吗?如果是这样,那就不要。下面说明了该问题:

C:\>hg init project
C:\>cd project
C:\project>hg init sub
C:\project>echo >file1
C:\project>echo >sub\file2
C:\project>hg st
? file1

删除子文件夹的 .hg 目录即可修复它:

C:\project>rd /s/q sub\.hg
C:\project>hg st
? file1
? sub\file2

与 Subversion 不同,Mercurial 仅使用项目根目录下的 .hg 目录。

Did you hg init in the subdirectory as well? If so, don't. Below illustrates the issue:

C:\>hg init project
C:\>cd project
C:\project>hg init sub
C:\project>echo >file1
C:\project>echo >sub\file2
C:\project>hg st
? file1

Delete the subfolder's .hg directory to fix it:

C:\project>rd /s/q sub\.hg
C:\project>hg st
? file1
? sub\file2

Unlike Subversion, Mercurial only uses an .hg directory at the root of a project.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文