Fix for spec failing because only the diff for the first parent was calculated.

This commit is contained in:
Jake Van Alstyne 🎩 2017-12-17 14:06:24 -07:00
parent ecb5263f6b
commit 26f1bb7c86

View File

@ -379,7 +379,7 @@ final public class Repository {
let err = NSError(gitError: result, pointOfFailure: "git_remote_fetch") let err = NSError(gitError: result, pointOfFailure: "git_remote_fetch")
return .failure(err) return .failure(err)
} }
return .success() return .success(())
} }
} }
} }
@ -573,17 +573,18 @@ final public class Repository {
return self.diff(fromTree: nil, toTree: baseTree) return self.diff(fromTree: nil, toTree: baseTree)
} }
let mergeDiff: Result<OpaquePointer?, NSError> = .success(nil) var mergeDiff: Result<OpaquePointer?, NSError> = .success(nil)
for parent in commit.parents { for parent in commit.parents {
print("parent: " + String(parent.hashValue))
let diff = self let diff = self
.commit(with: parent.oid) .commit(with: parent.oid)
.flatMap { commit in .flatMap { parentCommit in
return self.tree(from: commit) return self.tree(from: parentCommit)
} }
.flatMap { tree in .flatMap { parentTree in
return self.diff(fromTree: tree, toTree: baseTree) return self.diff(fromTree: parentTree, toTree: baseTree)
} }
return mergeDiff mergeDiff = mergeDiff
.fanout(diff) .fanout(diff)
.flatMap { (mergeDiff, diff) in .flatMap { (mergeDiff, diff) in
guard let mergeDiff = mergeDiff else { guard let mergeDiff = mergeDiff else {