Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarthik Nayak <knayak@gitlab.com>2023-05-03 15:23:54 +0300
committerKarthik Nayak <knayak@gitlab.com>2023-05-03 19:45:02 +0300
commitaa29b586ec390d9e0a0b02a5b008ff575c8b3470 (patch)
treec1983fd75cf24f187de36c087189b7592acce1c9
parent8bd3f0ff05cedb848d44071d5424cb89559ffa7b (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.go9
-rw-r--r--internal/git/localrepo/merge_test.go2
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,
}
},
},