2
ファイルの内容を取得したい。入力はリビジョンです。 作業ディレクトリまたはステージ領域にあるファイルの内容を取得する方法 たとえば、ファイル 'Test'の値が '1'の場合 '2'に変更してファイル を変更した場合は、 '3'と同じファイル 今は2つのファイルが1つのステージにあり、1つはステージにありません。どのようにしてファイルの内容を取得できますか?私は唯一のステージング領域のエントリを超えるトラバースするためにIDやHEADJGit:TreeWalkを使用してファイルの内容を取得する
try (RevWalk revWalk = new RevWalk(getRepository())) {
RevCommit revCommit = revWalk.parseCommit(revision);
RevTree tree = revCommit.getTree();
try (TreeWalk treeWalk = new TreeWalk(getRepository())) {
treeWalk.addTree(tree);
treeWalk.setRecursive(true);
treeWalk.setFilter(PathFilter.create(request.getFile()));
if (!treeWalk.next()) {
//error
}
ObjectId objectId = treeWalk.getObjectId(0);
ObjectLoader loader = repository.open(objectId);
content = new String(loader.getBytes());
}
}
あなたは何を意味しましたか?もう必要がなくなったらすぐにdirキャッシュのロックを解除することを忘れないでください。 ? – user1365697
getObjectIdとtreeWalkの違いは何ですか?何が良いですか?この場合のtreeWalkの操作方法は? – user1365697
名前のように、 'lockDirCache()'は他人が使用するためにdirキャッシュをロックするので、できるだけ早くこのロックを解除する必要があります。 –