mirror of
https://github.com/MichaelMure/git-bug.git
synced 2024-12-15 10:12:06 +03:00
e3737f216a
this commit exposes the format version of the operation pack and identity to reduce the changes needed in vendored code when migrating. This also creates error variables that can be propagated and tested against for migrations.
59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
package entity
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
type ErrMultipleMatch struct {
|
|
entityType string
|
|
Matching []Id
|
|
}
|
|
|
|
func NewErrMultipleMatch(entityType string, matching []Id) *ErrMultipleMatch {
|
|
return &ErrMultipleMatch{entityType: entityType, Matching: matching}
|
|
}
|
|
|
|
func (e ErrMultipleMatch) Error() string {
|
|
matching := make([]string, len(e.Matching))
|
|
|
|
for i, match := range e.Matching {
|
|
matching[i] = match.String()
|
|
}
|
|
|
|
return fmt.Sprintf("Multiple matching %s found:\n%s",
|
|
e.entityType,
|
|
strings.Join(matching, "\n"))
|
|
}
|
|
|
|
func IsErrMultipleMatch(err error) bool {
|
|
_, ok := err.(*ErrMultipleMatch)
|
|
return ok
|
|
}
|
|
|
|
// ErrOldFormatVersion indicate that the read data has a too old format.
|
|
type ErrOldFormatVersion struct {
|
|
formatVersion uint
|
|
}
|
|
|
|
func NewErrOldFormatVersion(formatVersion uint) *ErrOldFormatVersion {
|
|
return &ErrOldFormatVersion{formatVersion: formatVersion}
|
|
}
|
|
|
|
func (e ErrOldFormatVersion) Error() string {
|
|
return fmt.Sprintf("outdated repository format %v, please use https://github.com/MichaelMure/git-bug-migration to upgrade", e.formatVersion)
|
|
}
|
|
|
|
// ErrNewFormatVersion indicate that the read data is too new for this software.
|
|
type ErrNewFormatVersion struct {
|
|
formatVersion uint
|
|
}
|
|
|
|
func NewErrNewFormatVersion(formatVersion uint) *ErrNewFormatVersion {
|
|
return &ErrNewFormatVersion{formatVersion: formatVersion}
|
|
}
|
|
|
|
func (e ErrNewFormatVersion) Error() string {
|
|
return fmt.Sprintf("your version of git-bug is too old for this repository (version %v), please upgrade to the latest version", e.formatVersion)
|
|
}
|