From 28afdb8b00f0841248bf81982a83ab26dee985e3 Mon Sep 17 00:00:00 2001 From: Piet Brauer Date: Fri, 4 Mar 2016 01:10:10 +0800 Subject: [PATCH] Return GTOIDs instead of GTCommits --- ObjectiveGit/GTRepository+Merging.h | 6 +++--- ObjectiveGit/GTRepository+Merging.m | 13 +++++-------- ObjectiveGitTests/GTRepository+PullSpec.m | 2 +- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/ObjectiveGit/GTRepository+Merging.h b/ObjectiveGit/GTRepository+Merging.h index 08ad683bc..00a025073 100644 --- a/ObjectiveGit/GTRepository+Merging.h +++ b/ObjectiveGit/GTRepository+Merging.h @@ -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 *)mergeHeadEntriesWithError:(NSError **)error; +/// Retruns a (possibly empty) array with GTOID objects. Will not be nil. +- (NSArray *)mergeHeadEntriesWithError:(NSError **)error; /// Merge Branch into current branch /// diff --git a/ObjectiveGit/GTRepository+Merging.m b/ObjectiveGit/GTRepository+Merging.m index 6074a929b..aa4169e17 100644 --- a/ObjectiveGit/GTRepository+Merging.m +++ b/ObjectiveGit/GTRepository+Merging.m @@ -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, }; @@ -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; diff --git a/ObjectiveGitTests/GTRepository+PullSpec.m b/ObjectiveGitTests/GTRepository+PullSpec.m index b970c5a6d..ef0999566 100644 --- a/ObjectiveGitTests/GTRepository+PullSpec.m +++ b/ObjectiveGitTests/GTRepository+PullSpec.m @@ -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());