javajgit:使用between过滤Revwalk,并获取结果的TreeWalk
我基本上想按月份过滤我的TreeWalk。以下是我使用的代码:
head = repository.getRef("HEAD");
walk = new RevWalk(repository);
Date since= new Date();
since.setMonth(02);
since.setYear(2014-1900);
since.setDate(01);
Date until= new Date();
until.setMonth(02);
until.setYear(2014-1900);
until.setDate(31);
RevFilter between = CommitTimeRevFilter.between(since,until);
walk.setRevFilter(between);
commit = walk.parseCommit(head.getObjectId());
tree = commit.getTree();
TreeWalk treeWalk = new TreeWalk(repository);
treeWalk.addTree(tree);
treeWalk.setRecursive(true);
TreeFilter treefilter= walk.getTreeFilter();
treeWalk.setFilter();
return treeWalk;
我先过滤RevWalk,然后获取一个TreeWalk,因为我最终需要一个月的TreeWalk来获取我的详细信息
问题是,即使在过滤之后,我也得到了头部(最后一次提交)。我相信问题是
commit = walk.parseCommit(head.getObjectId());
但我不知道如何修复它,以获得一个月的过滤树路
# 1 楼答案
试试下面的代码(我在这篇文章中得到了解决这个问题的灵感:https://stackoverflow.com/a/27993763/4997684):