在hg清单中仅列出工作目录文件和目录?

vin*_*nux 6 mercurial

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

hg manifest -r tip
Run Code Online (Sandbox Code Playgroud)

但是,这会带来如下列表:

.hgtags
folder1/blah.c
folder1/blah.h
foo.json
folder2/bleh.c
folder2/bleh.h
test.json
Run Code Online (Sandbox Code Playgroud)

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

.hgtags
folder1
foo.json
folder2
test.json
Run Code Online (Sandbox Code Playgroud)

afl*_*p91 3

在 Unix 机器上你可以尝试:

hg manifest -r tip | cut -d "/" -f 1 | sort -u
Run Code Online (Sandbox Code Playgroud)

或者

hg manifest -r tip | cut -d "/" -f 1 | uniq
Run Code Online (Sandbox Code Playgroud)
  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)
Run Code Online (Sandbox Code Playgroud)