diff options
author | Michael Muré <batolettre@gmail.com> | 2022-08-13 12:08:48 +0200 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2022-08-18 15:55:48 +0200 |
commit | 45f5f852b71a63c142bca8b05efe53eebf142594 (patch) | |
tree | cb92d9f598b13dda69fbbc652a21d0ad8dc314c2 /bug/bug_actions.go | |
parent | cd52872475f1b39f3fb6546606c1e78afb6c08e3 (diff) | |
download | git-bug-45f5f852b71a63c142bca8b05efe53eebf142594.tar.gz |
core: generalized resolvers to resolve any entity time when unmarshalling an operation
Diffstat (limited to 'bug/bug_actions.go')
-rw-r--r-- | bug/bug_actions.go | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/bug/bug_actions.go b/bug/bug_actions.go index c8239e41..3a8ec3f0 100644 --- a/bug/bug_actions.go +++ b/bug/bug_actions.go @@ -24,13 +24,13 @@ func Push(repo repository.Repo, remote string) (string, error) { // This function will return an error if a merge fail // Note: an author is necessary for the case where a merge commit is created, as this commit will // have an author and may be signed if a signing key is available. -func Pull(repo repository.ClockedRepo, remote string, mergeAuthor identity.Interface) error { +func Pull(repo repository.ClockedRepo, resolvers entity.Resolvers, remote string, mergeAuthor identity.Interface) error { _, err := Fetch(repo, remote) if err != nil { return err } - for merge := range MergeAll(repo, remote, mergeAuthor) { + for merge := range MergeAll(repo, resolvers, remote, mergeAuthor) { if merge.Err != nil { return merge.Err } @@ -45,18 +45,13 @@ func Pull(repo repository.ClockedRepo, remote string, mergeAuthor identity.Inter // MergeAll will merge all the available remote bug // Note: an author is necessary for the case where a merge commit is created, as this commit will // have an author and may be signed if a signing key is available. -func MergeAll(repo repository.ClockedRepo, remote string, mergeAuthor identity.Interface) <-chan entity.MergeResult { - // no caching for the merge, we load everything from git even if that means multiple - // copy of the same entity in memory. The cache layer will intercept the results to - // invalidate entities if necessary. - identityResolver := identity.NewSimpleResolver(repo) - +func MergeAll(repo repository.ClockedRepo, resolvers entity.Resolvers, remote string, mergeAuthor identity.Interface) <-chan entity.MergeResult { out := make(chan entity.MergeResult) go func() { defer close(out) - results := dag.MergeAll(def, repo, identityResolver, remote, mergeAuthor) + results := dag.MergeAll(def, repo, resolvers, remote, mergeAuthor) // wrap the dag.Entity into a complete Bug for result := range results { |