首页 > 解决方案 > 仅列出 hg 清单中的工作目录文件和目录?

问题描述

我正在尝试使用以下命令获取当前文件和目录的列表:

hg manifest -r tip

但是,这会带来这样的列表:

.hgtags
folder1/blah.c
folder1/blah.h
foo.json
folder2/bleh.c
folder2/bleh.h
test.json

我怎样才能只列出以下内容?

.hgtags
folder1
foo.json
folder2
test.json

标签: mercurial

解决方案


在 Unix 机器上,您可以尝试:

hg manifest -r tip | cut -d "/" -f 1 | sort -u

或者

hg manifest -r tip | cut -d "/" -f 1 | uniq
  1. cut -d "/" -f 1:选择由'/'分隔的第一部分
  2. uniq: 过滤掉重复的行

或使用 Python(更跨平台):

您需要安装 python-glib(通过 pip)

import hglib
repo = hglib.open("/path/to/repo")
manifest = repo.manifest("tip")
files = set(f[4].split('/')[0] for f in manifest)

推荐阅读