栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用JGit根据提交日期签出特定修订版

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用JGit根据提交日期签出特定修订版

如果我正确理解了您的问题,则希望在给定的日期范围内查找提交,然后阅读该提交的特定文件格式的内容。

假设每个日期只有一次提交,则可以使用

RevWalk
来获取所需的提交:

try (RevWalk walk = new RevWalk(repo)) {  walk.markStart(walk.parseCommit(repo.resolve(Constants.HEAD)));  walk.sort(RevSort.COMMIT_TIME_DESC);  walk.setRevFilter(myFilter);  for (RevCommit commit : walk) {    if (commit.getCommitter().getWhen().equals(date)) {      // this is the commit you are looking for      revWalk.parseCommit(commit);      break;    }  }}

我不确定是否

revWalk.parseCommit(commit);
必须使用-
这取决于如何
RevWalk
设置。尝试在不解析提交的情况下运行代码,如果找到了文件,则保留该文件。

现在您已经有了所需的提交,请使用

TreeWalk
获取文件内容:

try (TreeWalk treeWalk = TreeWalk.forPath(repository, fileName, commit.getTree())) {  InputStream inputStream = repository.open(treeWalk.getObjectId(0), Constants.OBJ_BLOB).openStream();  // use the inputStream}

fileName
保存到相关文件的存储库相对路径。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/454103.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号