我想获得一个存储库的所有标签列表以及tagger和带有JGit的commit-IDs.
首先,我尝试了Git.tagList().call()命令并解析标签:
objectIdOfTag = oneResultOfTheTagList.getObjectId(); 
// or should I call getPeeledObjectId() here?
RevWalk walk = new RevWalk(repository);
RevTag tag = walk.parseTag(objectIdOfTag);
这适用于我的存储库,但我不确定这是否正确:呼叫是正确Ref.getObjectId()还是应该呼叫Ref.getPeeledObjectId()?(什么是" 去皮的 ObjectId"?)
使用JGit检索标记列表时,轻量级和带注释的标记之间是否存在差异?
getObjectId这是正确的.对于带注释的标记,您需要获取带注释的标记对象的ID,而不是标记最终指向的提交的ID.另见参考文献Javadoc.
要解析标记,您必须处理轻量级和带注释的情况:
RevObject object = walk.parseAny(objectIdOfTag);
if (object instanceof RevTag) {
    // annotated
} else if (object instanceof RevCommit) {
    // lightweight
} else {
    // invalid
}
| 归档时间: | 
 | 
| 查看次数: | 2578 次 | 
| 最近记录: |