1
我想知道如何在Git中使用C-API找到两个标签之间的所有提交?我知道这可以很容易地与CLI工具来完成:libgit2:查找两个标签之间的所有提交?
git的日志[第一承诺]。[第二承诺] --pretty = ONELINE
不过,我似乎无法弄清楚如何做它与C API。我坚持的问题是,当最终成为图中的一个循环时。
这是Objective-C的一些代码,我使用Objective-Git,但是由于大多数人不知道Objective-C,我很高兴在C API或其他一些Git API中得到答案。我可以想象,我将不得不保留一个以前遍历的提交字典或什么?
- (void)traverseCommits: (GTCommit *)start withGoal: (GTCommit *)goal withHistory: (NSMutableDictionary *)history{
NSLog(@"%@", start.shortSHA);
if ([start.SHA isEqualToString:goal.SHA]) {
return;
}
for (GTCommit *c in start.parents) {
//[history setObject:c forKey:c.SHA];
if(![c.SHA isEqualToString:goal.SHA])
[self traverseCommits:c withGoal:goal withHistory:history];
}
}
太好了,完美无缺! – jaredjones