DocSys-Git版本管理

DocSys的GIT版本管理功能基于JGIT实现,实现的难点在于如何使用JGIT的底层的API实现目录树的遍历,以下代码可以实现遍历所有目录树的节点包括文件和目录:

TreeWalk tw = new TreeWalk(repository,  repository.newObjectReader());
tw.reset(revTree);
tw.setRecursive(false);

while (tw.next()) 
{
       System.out.println("path:" + tw.getPathString());
       if (tw.isSubtree()) 
       {
            tw.enterSubtree();
       }
}

这里值得一提的是treeWalk.forPath接口,该接口可以通过路径找到指定节点的treeWalk,但是只对文件节点有效,所以会出现目录节点无法被遍历的问题。

 

 

 

你可能感兴趣的:(DocSys-Git版本管理)