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

时间:2018-05-19 01:47:18

标签: mercurial

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

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

2 个答案:

答案 0 :(得分:3)

在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. 分隔的第一部分
  3. uniq:过滤掉重复的行
  4. 或使用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)
    

答案 1 :(得分:0)

用于列出受版本控制的pwd文件的仅限Mercurial命令是:

hg files "glob:*"

由于manifestfiles命令都是面向文件的,因此仅使用Mercurial的方法可能根本无法达到规定的目标。