JGit API を使用してファイルのリストを取得する方法を知っている人はいますか? git show
次のようなローカルリポジトリでコマンドを使用するような同様の機能を見つけようとします
git ls-tree -r --name-only 7feff221f86e040f0cd2e4227e9e1496fe16f376
私はそのようないくつかのコードを持っています
File gitDir = new File("/Users/xiansongzeng/NIOServer");
Git git = Git.open(gitDir);
Repository repo = git.getRepository();
ObjectId lastCommitId = repo.resolve("7feff221f86e040f0cd2e4227e9e1496fe16f376");
RevWalk revWalk = new RevWalk(repo);
RevCommit commit = revWalk.parseCommit(lastCommitId);
RevTree tree= commit.getTree();
TreeWalk treeWalk = new TreeWalk(repo);
treeWalk.addTree(tree);
treeWalk.setRecursive(true);
treeWalk.setFilter(PathFilter.create("src/main/java/nds/socket/server/Reader.java"));
if(!treeWalk.next()){
System.out.println("Not found.");
return;
}
ObjectId objectId = treeWalk.getObjectId(0);
このコードは、ローカル リポジトリを対象としRevWalk
、最後のコミットのリビジョン ツリーをたどるために使用します。この例PathFilter
では、ファイルの参照を取得するために使用していますが、すべての Java ファイルのリストを取得する方法はわかりません。どんな提案でも大歓迎です。