75

mercurial 中是否有一个命令可以列出当前处于源代码控制之下的所有文件?

我可以dir /s列出我的文件夹和子文件夹中的所有文件,但我不知道哪些文件已添加到我的存储库中。我有多种排除的文件类型和文件夹,我想在我的 .hgignore 文件中设置它们之前验证它们都没有被添加。

4

5 回答 5

70

hg status --all将列出树中的所有文件,并用一个字母指示其状态:M 表示已修改,C 表示干净(归 hg 拥有),I 表示忽略。

对于刚刚忽略的文件,请使用hg status -i. 对于将在下一次提交时添加hg status -a的文件,请使用. 这些仅显示您需要了解的内容,不需要扫描长文件列表。

于 2010-06-08T18:24:54.027 回答
64

您也可以查看该hg locate命令。-I当我想将文件限制到某个目录时,我使用它以及该选项。

要列出存储库中的所有文件:

hg locate

从存储库(“根”)目录:

hg locate -I dir/sub_dir/dir_of_interest

传递给的路径-I需要根据运行命令的目录进行更改。如果您从dir上面示例中的目录运行命令,则需要修改您的参数以定位:

hg locate -I sub_dir/dir_of_interest

输出文件列表将保持不变,显示存储库中每个文件的完整路径。

尝试hg help -v locate了解更多信息。

于 2010-08-18T16:40:04.013 回答
23

hg manifest将仅列出存储库中的文件,而hg status --all将列出存储库结构中的所有文件,并包含一个标记,哪些正在被跟踪,哪些没有。

于 2010-06-08T18:23:45.760 回答
3

仅列出忽略或添加的文件

列出忽略的文件,请执行以下操作:hg status -i.

对于刚刚添加的文件,请执行hg status -a.

如果您不太喜欢打字,可以将它们缩短为hg sta -ihg sta -a

这两种用法status比 更简单,locate并且会为您提供您关心的特定文件状态,因此它明显不易出错。

更多关于hg status

要列出 mercurial repo 中的所有文件,请执行以下操作:hg status --all.

列出文件时,文件将在它们之前给出前缀:

  M = modified
  A = added
  R = removed
  C = clean
  ! = missing (deleted by non-hg command, but still tracked)
  ? = not tracked
  I = ignored

如果只想列出文件夹中的文件,可以提供路径:

  • hg st --all MyFolder– MyFolder 中的所有文件
  • hg sta -i MyFolder– 只是忽略了 MyFolder 中的文件。

除了-i“忽略”和-a“添加”之外,其他标志可用于仅列出具有特定状态的文件。

得到help

在此处阅读其他非常有用的答案,以全面了解该status命令。它投了反对票,因为作者试图表明你可以通过Mercurial 询问status这样的命令来发现上述所有内容:

hg help status

你可以让 Mercurial 告诉你它的任何这样的命令。如果您想要 Mercurial 的命令列表,请键入hg help.

于 2014-10-09T14:40:04.463 回答
-6
C:\>hg 帮助 -v 状态
hg 状态 [选项]... [文件]...

别名:st

在工作目录中显示更改的文件

    显示存储库中文件的状态。如果给出名称,则只有文件
    该匹配显示。干净或被忽略的文件或
    复制/移动操作,除非 -c/--clean,-i/--ignored,否则不会列出,
    -C/--copies 或 -A/--all 给出。除非选项用“显示
    只有 ..." 给出,选项 -mardu 被使用。

    选项 -q/--quiet 隐藏未跟踪(未知和忽略)的文件,除非
    使用 -u/--unknown 或 -i/--ignored 明确请求。

    注意:如果权限已更改,status 可能看起来与 diff 不一致
    或发生了合并。标准diff格式不报告
    权限更改和差异仅报告相对于一个合并的更改
    父母。

    如果给出了一个修订版,则将其用作基础修订版。如果两个
    给出了修订,显示了它们之间的差异。改变
    选项也可以用作列出已更改文件的快捷方式
    从它的第一个父母修订。

    用于显示文件状态的代码是:

      M = 修改
      A = 添加
      R = 移除
      C = 干净
      != 缺失(被非 hg 命令删除,但仍被跟踪)
      ? = 未跟踪
      我 = 忽略
        = 列为 A 的上一个文件的来源(已添加)

选项:

 -A --all 显示所有文件的状态
 -m --modified 只显示修改过的文件
 -a --added 只显示添加的文件
 -r --removed 仅显示已删除的文件
 -d --deleted 仅显示已删除(但已跟踪)的文件
 -c --clean 只显示没有更改的文件
 -u --unknown 仅显示未知(未跟踪)文件
 -i --ignored 只显示被忽略的文件
 -n --no-status 隐藏状态前缀
 -C --copies 显示复制文件的来源
 -0 --print0 以 NUL 结束文件名,用于 xargs
    --rev 显示与修订版本的差异
    --change 列出一个修订版本的更改文件
 -I --include 包含与给定模式匹配的名称
 -X --exclude 排除匹配给定模式的名称

全局选项:
 -R --repository 存储库根目录或覆盖包文件的名称
    --cwd 更改工作目录
 -y --noninteractive 不提示,假设任何需要的答案为“是”
 -q --quiet 抑制输出
 -v --verbose 启用附加输出
    --config 设置/覆盖配置选项(使用'section.name=value')
    --debug 启用调试输出
    --debugger 启动调试器
    --encoding 设置字符集编码(默认:cp1252)
    --encodingmode 设置字符集编码模式(默认:严格)
    --traceback 总是在异常时打印回溯
    --time time 命令需要多长时间
    --profile 打印命令执行配置文件
    --version 输出版本信息并退出
 -h --help 显示帮助并退出
于 2010-06-08T18:25:07.673 回答