Skip to content

Commit

Permalink
Return GTOIDs instead of GTCommits
Browse files Browse the repository at this point in the history
  • Loading branch information
pietbrauer committed Mar 3, 2016
1 parent 6323ca5 commit 28afdb8
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 12 deletions.
6 changes: 3 additions & 3 deletions ObjectiveGit/GTRepository+Merging.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@ typedef NS_OPTIONS(NSInteger, GTMergeAnalysis) {
/// enumeration to stop after the block returns. Must not be nil.
///
/// Returns YES if the operation succedded, NO otherwise.
- (BOOL)enumerateMergeHeadEntriesWithError:(NSError **)error usingBlock:(void (^)(GTCommit *mergeHeadEntry, BOOL *stop))block;
- (BOOL)enumerateMergeHeadEntriesWithError:(NSError **)error usingBlock:(void (^)(GTOID *mergeHeadEntry, BOOL *stop))block;

/// Convenience method for -enumerateMergeHeadEntriesWithError:usingBlock: that retuns an NSArray with all the fetch head entries.
///
/// error - The error if one ocurred. Can be NULL.
///
/// Retruns a (possibly empty) array with GTCommit objects. Will not be nil.
- (NSArray <GTCommit *>*)mergeHeadEntriesWithError:(NSError **)error;
/// Retruns a (possibly empty) array with GTOID objects. Will not be nil.
- (NSArray <GTOID *>*)mergeHeadEntriesWithError:(NSError **)error;

/// Merge Branch into current branch
///
Expand Down
13 changes: 5 additions & 8 deletions ObjectiveGit/GTRepository+Merging.m
Original file line number Diff line number Diff line change
Expand Up @@ -22,33 +22,30 @@

@implementation GTRepository (Merging)

typedef void (^GTRepositoryEnumerateMergeHeadEntryBlock)(GTCommit *entry, BOOL *stop);
typedef void (^GTRepositoryEnumerateMergeHeadEntryBlock)(GTOID *entry, BOOL *stop);

typedef struct {
__unsafe_unretained GTRepository *repository;
__unsafe_unretained GTRepositoryEnumerateMergeHeadEntryBlock enumerationBlock;
} GTEnumerateMergeHeadEntriesPayload;

int GTMergeHeadEntriesCallback(const git_oid *oid, void *payload) {
GTEnumerateMergeHeadEntriesPayload *entriesPayload = payload;

GTRepository *repository = entriesPayload->repository;
GTRepositoryEnumerateMergeHeadEntryBlock enumerationBlock = entriesPayload->enumerationBlock;

GTCommit *commit = [repository lookUpObjectByOID:[GTOID oidWithGitOid:oid] objectType:GTObjectTypeCommit error:NULL];
GTOID *gtoid = [GTOID oidWithGitOid:oid];

BOOL stop = NO;

enumerationBlock(commit, &stop);
enumerationBlock(gtoid, &stop);

return (stop == YES ? GIT_EUSER : 0);
}

- (BOOL)enumerateMergeHeadEntriesWithError:(NSError **)error usingBlock:(void (^)(GTCommit *mergeHeadEntry, BOOL *stop))block {
- (BOOL)enumerateMergeHeadEntriesWithError:(NSError **)error usingBlock:(void (^)(GTOID *mergeHeadEntry, BOOL *stop))block {
NSParameterAssert(block != nil);

GTEnumerateMergeHeadEntriesPayload payload = {
.repository = self,
.enumerationBlock = block,
};

Expand All @@ -65,7 +62,7 @@ - (BOOL)enumerateMergeHeadEntriesWithError:(NSError **)error usingBlock:(void (^
- (NSArray *)mergeHeadEntriesWithError:(NSError **)error {
NSMutableArray *entries = [NSMutableArray array];

[self enumerateMergeHeadEntriesWithError:error usingBlock:^(GTCommit *mergeHeadEntry, BOOL *stop) {
[self enumerateMergeHeadEntriesWithError:error usingBlock:^(GTOID *mergeHeadEntry, BOOL *stop) {
[entries addObject:mergeHeadEntry];

*stop = NO;
Expand Down
2 changes: 1 addition & 1 deletion ObjectiveGitTests/GTRepository+PullSpec.m
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@
expect(error.domain).to(equal(@"GTGitErrorDomain"));
expect(error.userInfo[GTPullMergeConflictedFiles]).to(equal(@[@"test.txt"]));
expect(fileContents).notTo(equal(@"TestLocal"));
expect([localRepo mergeHeadEntriesWithError:nil]).to(equal(@[remoteCommit]));
expect([localRepo mergeHeadEntriesWithError:nil]).to(equal(@[remoteCommit.OID]));
expect([localRepo preparedMessageWithError:nil]).to(beginWith(@"Merge commit"));
expect(error.localizedDescription).to(equal(@"Merge conflict"));
expect(@(transferProgressed)).to(beTruthy());
Expand Down

0 comments on commit 28afdb8

Please sign in to comment.