aboutsummaryrefslogtreecommitdiffstats
path: root/identity/version.go
diff options
context:
space:
mode:
authorvince <vincetiu8@gmail.com>2020-12-10 21:12:45 +0800
committerMichael Muré <batolettre@gmail.com>2020-12-15 14:11:07 +0100
commite3737f216a7b6a36a2ba10146f2d228f32dcbcfb (patch)
tree2db523e976d01ddf83625118f85f056139326cc4 /identity/version.go
parent0545ad6a6c478ddf8cf17c078df9e1c92a3f4083 (diff)
downloadgit-bug-e3737f216a7b6a36a2ba10146f2d228f32dcbcfb.tar.gz
expose format version
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.
Diffstat (limited to 'identity/version.go')
-rw-r--r--identity/version.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/identity/version.go b/identity/version.go
index 73e4d7c7..bbf93575 100644
--- a/identity/version.go
+++ b/identity/version.go
@@ -8,6 +8,7 @@ import (
"github.com/pkg/errors"
+ "github.com/MichaelMure/git-bug/entity"
"github.com/MichaelMure/git-bug/repository"
"github.com/MichaelMure/git-bug/util/lamport"
"github.com/MichaelMure/git-bug/util/text"
@@ -102,8 +103,11 @@ func (v *Version) UnmarshalJSON(data []byte) error {
return err
}
- if aux.FormatVersion != formatVersion {
- return fmt.Errorf("unknown format version %v", aux.FormatVersion)
+ if aux.FormatVersion < formatVersion {
+ return entity.NewErrOldFormatVersion(aux.FormatVersion)
+ }
+ if aux.FormatVersion > formatVersion {
+ return entity.NewErrNewFormatVersion(aux.FormatVersion)
}
v.time = aux.Time