C-APIを使ってGit内の2つのタグの間にあるすべてのコミットを見つける方法を知りましたか?私は、これは簡単にCLIツールで行うことができます知っている:.. [最初のコミット]libgit2:2つのタグ間のすべてのコミットを見つけるか?
gitのログ[二コミット] --pretty =
しかしとしてoneline、私は何をする方法を見つけ出すように見えることはできませんそれはC APIを使っています。私が抱えている問題は、グラフに1つのサイクルが終わるときです。
私はObjective-Gitで使用していたObjective-Cコードをいくつか紹介しますが、Objective-Cはほとんどの人が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