我一直在使用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并不是一种选择,因为该决定不受我的控制。