使用git-lfs时使用jgit获取特定的文件版本

时间:2019-07-19 15:23:27

标签: jgit git-lfs

我一直在使用jgit从存储库中获取文件的不同版本,以对这两个文件进行自己的比较。 (那些是csv文件) 我使用此代码来获取特定提交哈希的文件作为Inputstream,效果很好。

        RevWalk revWalk = new RevWalk(repo);
        RevCommit commit = revWalk.parseCommit(commitHash);

        RevTree tree = commit.getTree();
        TreeWalk treeWalk = new TreeWalk(repo);
        treeWalk.addTree(tree);
        treeWalk.setRecursive(true);
        treeWalk.setFilter(PathFilter.create(filePath));
        if (!treeWalk.next()) {
            return null;
        }
        ObjectId objectId = treeWalk.getObjectId(0);
        ObjectLoader loader = repo.open(objectId);

        InputStream input = loader.openStream();

否,我们没有将存储库切换为使用git lfs,我在Inputstream中获得的只是:

version https://git-lfs.github.com/spec/v1
oid sha256:76d029668e8a18fee3ce2a7048e277b5901dcc9ba0b81d23627a1698eda2025a
size 1316592

是否可以使用jgit将csv文件的真实内容作为Inputstream获得?

完全不使用lfs并不是一种选择,因为该决定不受我的控制。

0 个答案:

没有答案