You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Hg清单中仅列出当前工作目录的文件和目录?

解决Mercurial只列出顶层文件和目录的问题

嗨,我之前也碰到过这个需求,给你几个简单好用的办法,帮你快速拿到仓库根目录下的顶层文件和目录:

方法一:用Mercurial原生的Fileset功能(推荐)

Mercurial的fileset支持按深度筛选,直接用depth(0)就能指定只取根目录下的元素,命令简洁又准确:

hg files -r tip "set:depth(0)"

这个命令会直接输出tip版本中仓库根目录下的所有文件和目录,不需要额外处理,完全是Mercurial原生支持的方式,结果靠谱又省心。

方法二:结合文本处理工具过滤

如果你习惯用hg manifest命令,也可以通过awk这类工具提取顶层路径:

hg manifest -r tip | awk -F/ '{print $1}' | sort -u

原理很简单:把每个路径按/分割,只取第一个字段(也就是顶层的文件名或目录名),再用sort -u去重,确保每个顶层元素只出现一次。

额外技巧:区分文件和目录

如果需要明确区分哪些是文件、哪些是目录,可以在上面的基础上再加个判断:

hg files -r tip "set:depth(0)" | while read item; do
  if hg files -r tip "set:path('$item') and isdir()"; then
    echo "[目录] $item"
  else
    echo "[文件] $item"
  fi
done

这样就能清晰看到每个顶层元素的类型啦。

内容的提问来源于stack exchange,提问作者vinnylinux

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:34:56