Skip to content

Commit 8d0a5f8

Browse files
committed
Merge pull request #411 from libgit2/is-merge
Added -isMerge
2 parents ed58afe + cd4e10b commit 8d0a5f8

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

Classes/GTCommit.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,9 @@
4646
@property (nonatomic, readonly) NSTimeZone *commitTimeZone;
4747
@property (nonatomic, readonly) GTTree *tree;
4848

49+
/// Is this a merge commit?
50+
@property (nonatomic, readonly, assign, getter = isMerge) BOOL merge;
51+
4952
/// The underlying `git_object` as a `git_commit` object.
5053
- (git_commit *)git_commit __attribute__((objc_returns_inner_pointer));
5154

Classes/GTCommit.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,10 @@ - (GTTree *)tree {
108108
return (GTTree *)[GTObject objectWithObj:(git_object *)tree inRepository:self.repository];
109109
}
110110

111+
- (BOOL)isMerge {
112+
return git_commit_parentcount(self.git_commit) > 1;
113+
}
114+
111115
- (NSArray *)parents {
112116
unsigned numberOfParents = git_commit_parentcount(self.git_commit);
113117
NSMutableArray *parents = [NSMutableArray arrayWithCapacity:numberOfParents];

ObjectiveGitTests/GTCommitSpec.m

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,15 @@
5959
expect(commit.parents.count).to.equal(2);
6060
});
6161

62+
it(@"can identify merges", ^{
63+
NSError *error;
64+
NSString *commitSHA = @"a4a7dce85cf63874e984719f4fdd239f5145052f";
65+
GTCommit *commit = [repository lookUpObjectBySHA:commitSHA error:&error];
66+
expect(commit).notTo.beNil();
67+
68+
expect(commit.merge).to.beTruthy();
69+
});
70+
6271
afterEach(^{
6372
[self tearDown];
6473
});

0 commit comments

Comments
 (0)