From 26f1bb7c86edab23b2ba0b426f14488b8c9078b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jake=20Van=20Alstyne=20=F0=9F=8E=A9?= Date: Sun, 17 Dec 2017 14:06:24 -0700 Subject: [PATCH] Fix for spec failing because only the diff for the first parent was calculated. --- SwiftGit2/Repository.swift | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/SwiftGit2/Repository.swift b/SwiftGit2/Repository.swift index abc0377..a8ef8d4 100644 --- a/SwiftGit2/Repository.swift +++ b/SwiftGit2/Repository.swift @@ -379,7 +379,7 @@ final public class Repository { let err = NSError(gitError: result, pointOfFailure: "git_remote_fetch") return .failure(err) } - return .success() + return .success(()) } } } @@ -573,17 +573,18 @@ final public class Repository { return self.diff(fromTree: nil, toTree: baseTree) } - let mergeDiff: Result = .success(nil) + var mergeDiff: Result = .success(nil) for parent in commit.parents { + print("parent: " + String(parent.hashValue)) let diff = self .commit(with: parent.oid) - .flatMap { commit in - return self.tree(from: commit) + .flatMap { parentCommit in + return self.tree(from: parentCommit) } - .flatMap { tree in - return self.diff(fromTree: tree, toTree: baseTree) + .flatMap { parentTree in + return self.diff(fromTree: parentTree, toTree: baseTree) } - return mergeDiff + mergeDiff = mergeDiff .fanout(diff) .flatMap { (mergeDiff, diff) in guard let mergeDiff = mergeDiff else {