aboutsummaryrefslogtreecommitdiffstats
path: root/bug
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2021-02-20 15:48:44 +0100
committerMichael Muré <batolettre@gmail.com>2021-03-14 18:41:22 +0100
commit214abe4dea1984086e45d1399538fb12aa010642 (patch)
tree6536f3ff7304e6b6abdd88728b391b726a471906 /bug
parentf1d4a19af81fcc05ae9d90e018ff141f6521335a (diff)
downloadgit-bug-214abe4dea1984086e45d1399538fb12aa010642.tar.gz
WIP operation with files
Diffstat (limited to 'bug')
-rw-r--r--bug/op_add_comment.go2
-rw-r--r--bug/op_create.go2
-rw-r--r--bug/op_edit_comment.go2
-rw-r--r--bug/operation.go17
4 files changed, 12 insertions, 11 deletions
diff --git a/bug/op_add_comment.go b/bug/op_add_comment.go
index 4cba200f..f835866b 100644
--- a/bug/op_add_comment.go
+++ b/bug/op_add_comment.go
@@ -5,6 +5,7 @@ import (
"fmt"
"github.com/MichaelMure/git-bug/entity"
+ "github.com/MichaelMure/git-bug/entity/dag"
"github.com/MichaelMure/git-bug/identity"
"github.com/MichaelMure/git-bug/repository"
"github.com/MichaelMure/git-bug/util/text"
@@ -12,6 +13,7 @@ import (
)
var _ Operation = &AddCommentOperation{}
+var _ dag.OperationWithFiles = &AddCommentOperation{}
// AddCommentOperation will add a new comment in the bug
type AddCommentOperation struct {
diff --git a/bug/op_create.go b/bug/op_create.go
index 37e1ddc5..75b60bd8 100644
--- a/bug/op_create.go
+++ b/bug/op_create.go
@@ -6,6 +6,7 @@ import (
"strings"
"github.com/MichaelMure/git-bug/entity"
+ "github.com/MichaelMure/git-bug/entity/dag"
"github.com/MichaelMure/git-bug/identity"
"github.com/MichaelMure/git-bug/repository"
"github.com/MichaelMure/git-bug/util/text"
@@ -13,6 +14,7 @@ import (
)
var _ Operation = &CreateOperation{}
+var _ dag.OperationWithFiles = &CreateOperation{}
// CreateOperation define the initial creation of a bug
type CreateOperation struct {
diff --git a/bug/op_edit_comment.go b/bug/op_edit_comment.go
index 653ab71e..3e6634e4 100644
--- a/bug/op_edit_comment.go
+++ b/bug/op_edit_comment.go
@@ -7,6 +7,7 @@ import (
"github.com/pkg/errors"
"github.com/MichaelMure/git-bug/entity"
+ "github.com/MichaelMure/git-bug/entity/dag"
"github.com/MichaelMure/git-bug/identity"
"github.com/MichaelMure/git-bug/repository"
"github.com/MichaelMure/git-bug/util/timestamp"
@@ -15,6 +16,7 @@ import (
)
var _ Operation = &EditCommentOperation{}
+var _ dag.OperationWithFiles = &EditCommentOperation{}
// EditCommentOperation will change a comment in the bug
type EditCommentOperation struct {
diff --git a/bug/operation.go b/bug/operation.go
index d01f1cc9..8daa2cde 100644
--- a/bug/operation.go
+++ b/bug/operation.go
@@ -11,7 +11,6 @@ import (
"github.com/MichaelMure/git-bug/entity"
"github.com/MichaelMure/git-bug/entity/dag"
"github.com/MichaelMure/git-bug/identity"
- "github.com/MichaelMure/git-bug/repository"
)
// OperationType is an operation type identifier
@@ -38,10 +37,9 @@ type Operation interface {
// Time return the time when the operation was added
Time() time.Time
- // GetFiles return the files needed by this operation
- GetFiles() []repository.Hash
// Apply the operation to a Snapshot to create the final state
Apply(snapshot *Snapshot)
+
// SetMetadata store arbitrary metadata about the operation
SetMetadata(key string, value string)
// GetMetadata retrieve arbitrary metadata about the operation
@@ -212,11 +210,6 @@ func (base *OpBase) Time() time.Time {
return time.Unix(base.UnixTime, 0)
}
-// GetFiles return the files needed by this operation
-func (base *OpBase) GetFiles() []repository.Hash {
- return nil
-}
-
// Validate check the OpBase for errors
func (base *OpBase) Validate(op Operation, opType OperationType) error {
if base.OperationType != opType {
@@ -235,9 +228,11 @@ func (base *OpBase) Validate(op Operation, opType OperationType) error {
return errors.Wrap(err, "author")
}
- for _, hash := range op.GetFiles() {
- if !hash.IsValid() {
- return fmt.Errorf("file with invalid hash %v", hash)
+ if op, ok := op.(dag.OperationWithFiles); ok {
+ for _, hash := range op.GetFiles() {
+ if !hash.IsValid() {
+ return fmt.Errorf("file with invalid hash %v", hash)
+ }
}
}