diff options
author | Karthik Nayak <knayak@gitlab.com> | 2023-05-03 15:23:54 +0300 |
---|---|---|
committer | Karthik Nayak <knayak@gitlab.com> | 2023-05-03 19:45:02 +0300 |
commit | aa29b586ec390d9e0a0b02a5b008ff575c8b3470 (patch) | |
tree | c1983fd75cf24f187de36c087189b7592acce1c9 | |
parent | 8bd3f0ff05cedb848d44071d5424cb89559ffa7b (diff) |
localrepo: Introduce and use `ErrMergeTreeUnrelatedHistory`
Introduce a new error `ErrMergeTreeUnrelatedHistory` for merge tree
errors which are related to merging trees with unrelated history. This
separation allows us to differentiate between this and errors related to
merge conflicts.
Eventually we'll improve the `MergeTreeConflictError` to contain more
information regarding merge conflicts.
-rw-r--r-- | internal/git/localrepo/merge.go | 9 | ||||
-rw-r--r-- | internal/git/localrepo/merge_test.go | 2 |
2 files changed, 7 insertions, 4 deletions
diff --git a/internal/git/localrepo/merge.go b/internal/git/localrepo/merge.go index db02187c3..57b8b92f2 100644 --- a/internal/git/localrepo/merge.go +++ b/internal/git/localrepo/merge.go @@ -27,6 +27,11 @@ const ( MergeStageTheirs = MergeStage(3) ) +// ErrMergeTreeUnrelatedHistory is used to denote the error when trying to merge two +// trees without unrelated history. This occurs when we don't use set the +// `allowUnrelatedHistories` option in the config. +var ErrMergeTreeUnrelatedHistory = errors.New("unrelated histories") + type mergeTreeConfig struct { allowUnrelatedHistories bool conflictingFileNamesOnly bool @@ -100,9 +105,7 @@ func (repo *Repo) MergeTree( if exitCode > 1 { if text.ChompBytes(stderr.Bytes()) == "fatal: refusing to merge unrelated histories" { - return "", &MergeTreeConflictError{ - InfoMessage: "unrelated histories", - } + return "", ErrMergeTreeUnrelatedHistory } return "", fmt.Errorf("merge-tree: %w", err) } diff --git a/internal/git/localrepo/merge_test.go b/internal/git/localrepo/merge_test.go index e8d1b432d..cd50bb131 100644 --- a/internal/git/localrepo/merge_test.go +++ b/internal/git/localrepo/merge_test.go @@ -121,7 +121,7 @@ func TestMergeTree(t *testing.T) { return setupData{ ours: ours, theirs: theirs, - expectedErr: &MergeTreeConflictError{InfoMessage: "unrelated histories"}, + expectedErr: ErrMergeTreeUnrelatedHistory, } }, }, |