如何在Mercurial(hg)中列出存储库中的所有文件?

在mercurial中有一个命令将列出当前在源代码pipe理下的所有文件吗?

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

hg status --all所有的文件都会列在树上,用字母表示它的状态:M表示修改,C表示干净(由hg拥有),I表示忽略。

对于只是被忽略的文件,使用hg status -i 。 对于将在下一次提交中添加的文件,请使用hg status -a 。 这些只显示你需要知道的,不需要扫描长文件列表。

您也可以查看hg locate命令。 我使用它,以及-I选项,当我想限制文件到一个特定的目录。

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

 hg locate 

从存储库(“root”)目录中:

 hg locate -I dir/sub_dir/dir_of_interest 

传递给-I的path需要根据运行命令的目录进行更改。 如果你在上面的例子中从dir目录运行命令,你需要修改你的参数来find:

 hg locate -I sub_dir/dir_of_interest 

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

试试hg help -v locate更多的信息。

hg manifest将仅列出存储库中的文件,而hg status --all将列出存储库结构中的所有文件,并包括正被跟踪的标记和不包含的标记。

仅列出被忽略或添加的文件

列出被忽略的文件,请执行: hg status -i

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

如果你不喜欢打字的话,可以把这些缩短到hg sta -ihg sta -a

这两个status使用比locate更简单,并会给你你所关心的特定文件状态,所以它明显less出错。

更多关于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 

如果只想列出文件夹中的文件 ,则可以提供一个path:

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

除了-i代表“被忽略”和-a代表“已添加”以外,还有其他标志可以列出具有特定状态的文件。

获得help

请阅读其他非常有用的答案,以便全面了解status命令。 因为作者试图certificate你可以通过 Mercurial询问这样的status命令来发现上面的所有内容:

 hg help status 

你可以要求Mercurial告诉你任何这样的命令。 如果你想要一个Mercurial的命令列表,然后inputhg help

 C:\> hg help -v status
 hg status [OPTION] ... [FILE] ...

别名:st

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

    显示存储库中文件的状态。 如果给出名字,只有文件
    显示匹配。 干净或被忽略的文件或者
    复制/移动操作,除非-c /  - 清除,-i /  - 忽略,否则不列出,
     -C /  - 副本或-A /  - 全部给出。 除非选项用“show
    只有...“,使用选项-mardu。

    选项-q /  - 安静隐藏未跟踪(未知和忽略)的文件,除非
    明确要求-u /  - 未知或-i /  - 忽略。

    注意:如果权限已经改变,状态可能会与diff不一致
    或发生合并。 标准差异格式不报告
    权限更改和差异只报告相对于一个合并的更改
    家长。

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

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

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

选项:

  -A  - 显示所有文件的状态
  -m  - 修改只显示修改过的文件
  -a  - 添加显示只添加文件
  -r --removed仅显示已删除的文件
  -d --deleted仅显示已删除(但已跟踪)的文件
  -c  - 清除仅显示没有更改的文件
  -u  - 未知只显示未知(未跟踪)的文件
  -i --ignored只显示被忽略的文件
  -n  - 无状态隐藏状态前缀
  -C-拷贝显示复制文件的来源
  -0 --print0用NUL结束文件名,用于xargs
     --rev显示与修订的区别
     - 更改列表修改的文件
  -I  - 包含匹配给定模式的名称
  -X  - 排除与给定模式匹配的排除名称

全球select:
  -R  - 存储库的根目录或覆盖包文件的名称
     --cwd改变工作目录
  -y  - 非交互不提示,对于任何需要的答案都假设为“是”
  -q  - 静止压缩输出
  -v --verbose启用附加输出
     --config set / override config选项(使用'section.name = value')
     --debug启用debugging输出
     --debugger启动debugging器
     --encoding设置字符集编码(默认:cp1252)
     --encodingmode设置字符编码模式(默认:严格)
     --traceback总是在exception情况下打印回溯
     - 时间命令需要多长时间
     --profile打印命令执行configuration文件
     - 版本输出版本信息并退出
  -h  - 帮助显示帮助并退出