使用JGit TreeWalk列出文件和文件夹

高拉夫·沙玛(Gaurav Sharma):

我想使用JGit来显示头部修订的所有文件和文件夹的列表。我可以使用TreeWalk列出所有文件,但是不会列出文件夹。

这是我到目前为止的内容:

public class MainClass {

    public static void main(String[] args) throws IOException {
        FileRepositoryBuilder builder = new FileRepositoryBuilder();
        Repository repository = builder
                .setGitDir(new File("C:\\temp\\git\\.git")).readEnvironment()
                .findGitDir().build();

        listRepositoryContents(repository);

        repository.close();
    }

    private static void listRepositoryContents(Repository repository) throws IOException {
        Ref head = repository.getRef("HEAD");

        // a RevWalk allows to walk over commits based on some filtering that is defined
        RevWalk walk = new RevWalk(repository);

        RevCommit commit = walk.parseCommit(head.getObjectId());
        RevTree tree = commit.getTree();
        System.out.println("Having tree: " + tree);

        // now use a TreeWalk to iterate over all files in the Tree recursively
        // you can set Filters to narrow down the results if needed
        TreeWalk treeWalk = new TreeWalk(repository);
        treeWalk.addTree(tree);
        treeWalk.setRecursive(true);
        while (treeWalk.next()) {
            System.out.println("found: " + treeWalk.getPathString());
        }
    }
}
RüdigerHerrmann:

Git不会跟踪自己的目录。您只能从从TreeWalk获取的路径字符串派生非空目录名称。

有关详细说明和可能的解决方法,请参见Git常见问题解答(搜索“空目录”)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用一个驱动器一键列出文件和文件夹

使用LS命令逐页列出文件夹的文件

如何使用bash命令列出文件夹?

列出文件夹和文件

无法使用SharePoint Client API列出文件/文件夹

使用Maven Replacer插件列出文件夹中的文件

在Yosemite上使用JavaScript for Automation列出文件夹中的所有文件

使用Swift在iTunes共享文件夹中列出文件

如何使用angular js列出文件夹中的所有文件名

如何使用bash脚本列出文件夹中的文件

使用python列出文件夹中具有特定结尾的文件作为变量

使用.Net列出Google Drive V2中的所有文件和文件夹

如何在Linux shell中使用`ls`列出文件,因为它们在相应的文件夹中列出

在Python中使用函数列出文件夹名称

仅使用PHP从FTP服务器列出文件夹

使用 Outlook MAPI 列出文件夹中的所有电子邮件

使用jGit循环提交文件

如何使用v2 API列出我的保管箱中的所有文件和文件夹

bash列出文件夹中的所有子目录,将它们写入数组以在菜单中使用

保险柜-如何使用HVAC从kv v2秘密引擎上的特定路径列出文件夹?

JGit:我想在一个特定的分支中的所有文件和文件夹

如何使用rmtree()删除文件夹和文件

使用位置菜单浏览文件夹和文件

使用通配符复制文件夹和文件

使用Robocopy排除许多文件和文件夹

使用XSLT创建多个XML文件和文件夹

使用Powershell和文件夹中的文件进行打印

使用Powershell 2压缩多个文件夹和文件

在 AHK 循环文件和文件夹中使用通配符