使用ngit获取旧版本文件内容

时间:2012-02-21 17:24:42

标签: .net git

基本上我需要在存储库中获取旧版本的文件而不更改当前的工作文件。 我想到了不同的方式:

  • 临时分支并做事
  • 复制文件,签出文件做我的事情并将其归还

但这些方式确实缓慢而复杂。是不是有比ngit简单的东西?

1 个答案:

答案 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()
    ...
}