基本上我需要在存储库中获取旧版本的文件而不更改当前的工作文件。 我想到了不同的方式:
但这些方式确实缓慢而复杂。是不是有比ngit简单的东西?
答案 0 :(得分:0)
使用NGit:有关方法用法的详细信息,请参阅jgit文档http://jgit.info/javadoc/
ObjectId commitId = git.GetRepository().Resolve(ref);
RevWalk revWalk = new RevWalk(git.GetRepository());
RevTree revTree = loRevWalk.ParseTree(commitId);
TreeWalk treeWalk = new TreeWalk(git.GetRepository());
treeWalk.AddTree(revTree);
while (treeWalk.Next())
{
//compare treeWalk.NameString yourself
byte[] bytes = treeWalk.ObjectReader.Open(treeWalk.GetObjectId(0)).GetCachedBytes()
...
}