From 0b2a99ab965a1a90e138cc26f12c160a0dac60c2 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Tue, 19 Nov 2019 00:26:38 +0100 Subject: bug: don't forget to assign the new packs after a merge fix #235 --- bug/bug.go | 2 ++ 1 file changed, 2 insertions(+) (limited to 'bug') diff --git a/bug/bug.go b/bug/bug.go index eb0337a4..911961b1 100644 --- a/bug/bug.go +++ b/bug/bug.go @@ -592,6 +592,8 @@ func (bug *Bug) Merge(repo repository.Repo, other Interface) (bool, error) { bug.lastCommit = hash } + bug.packs = newPacks + // Update the git ref err = repo.UpdateRef(bugsRefPattern+bug.id.String(), bug.lastCommit) if err != nil { -- cgit From a9b32e6bdaa610e2244816618a316bcdf53545e6 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Tue, 19 Nov 2019 00:27:40 +0100 Subject: repo: esthetism rename --- bug/bug.go | 4 ++-- bug/clocks.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'bug') diff --git a/bug/bug.go b/bug/bug.go index 911961b1..f1d36d52 100644 --- a/bug/bug.go +++ b/bug/bug.go @@ -197,10 +197,10 @@ func readBug(repo repository.ClockedRepo, ref string) (*Bug, error) { } // Update the clocks - if err := repo.CreateWitness(bug.createTime); err != nil { + if err := repo.WitnessCreate(bug.createTime); err != nil { return nil, errors.Wrap(err, "failed to update create lamport clock") } - if err := repo.EditWitness(bug.editTime); err != nil { + if err := repo.WitnessEdit(bug.editTime); err != nil { return nil, errors.Wrap(err, "failed to update edit lamport clock") } diff --git a/bug/clocks.go b/bug/clocks.go index bb3d81f0..52d23544 100644 --- a/bug/clocks.go +++ b/bug/clocks.go @@ -12,12 +12,12 @@ func Witnesser(repo repository.ClockedRepo) error { return b.Err } - err := repo.CreateWitness(b.Bug.createTime) + err := repo.WitnessCreate(b.Bug.createTime) if err != nil { return err } - err = repo.EditWitness(b.Bug.editTime) + err = repo.WitnessEdit(b.Bug.editTime) if err != nil { return err } -- cgit From ed2ac793e9f353720db2615b06569d05c253b977 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Tue, 19 Nov 2019 00:28:06 +0100 Subject: bug: use NeedCommit() in the interface, drop HasPendingOp() --- bug/bug.go | 9 ++------- bug/bug_actions_test.go | 8 ++++++++ bug/bug_test.go | 6 ++++++ bug/interface.go | 4 ++-- 4 files changed, 18 insertions(+), 9 deletions(-) (limited to 'bug') diff --git a/bug/bug.go b/bug/bug.go index f1d36d52..ca817dc1 100644 --- a/bug/bug.go +++ b/bug/bug.go @@ -160,7 +160,7 @@ func readBug(repo repository.ClockedRepo, ref string) (*Bug, error) { rootFound = true } if strings.HasPrefix(entry.Name, createClockEntryPrefix) { - n, err := fmt.Sscanf(string(entry.Name), createClockEntryPattern, &createTime) + n, err := fmt.Sscanf(entry.Name, createClockEntryPattern, &createTime) if err != nil { return nil, errors.Wrap(err, "can't read create lamport time") } @@ -169,7 +169,7 @@ func readBug(repo repository.ClockedRepo, ref string) (*Bug, error) { } } if strings.HasPrefix(entry.Name, editClockEntryPrefix) { - n, err := fmt.Sscanf(string(entry.Name), editClockEntryPattern, &editTime) + n, err := fmt.Sscanf(entry.Name, editClockEntryPattern, &editTime) if err != nil { return nil, errors.Wrap(err, "can't read edit lamport time") } @@ -350,11 +350,6 @@ func (bug *Bug) Append(op Operation) { bug.staging.Append(op) } -// HasPendingOp tell if the bug need to be committed -func (bug *Bug) HasPendingOp() bool { - return !bug.staging.IsEmpty() -} - // Commit write the staging area in Git and move the operations to the packs func (bug *Bug) Commit(repo repository.ClockedRepo) error { diff --git a/bug/bug_actions_test.go b/bug/bug_actions_test.go index 4bc58aea..38dddce2 100644 --- a/bug/bug_actions_test.go +++ b/bug/bug_actions_test.go @@ -4,6 +4,7 @@ import ( "testing" "time" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/MichaelMure/git-bug/identity" @@ -18,8 +19,10 @@ func TestPushPull(t *testing.T) { bug1, _, err := Create(reneA, time.Now().Unix(), "bug1", "message") require.NoError(t, err) + assert.True(t, bug1.NeedCommit()) err = bug1.Commit(repoA) require.NoError(t, err) + assert.False(t, bug1.NeedCommit()) // distribute the identity _, err = identity.Push(repoA, "origin") @@ -91,8 +94,10 @@ func _RebaseTheirs(t testing.TB) { bug1, _, err := Create(reneA, time.Now().Unix(), "bug1", "message") require.NoError(t, err) + assert.True(t, bug1.NeedCommit()) err = bug1.Commit(repoA) require.NoError(t, err) + assert.False(t, bug1.NeedCommit()) // distribute the identity _, err = identity.Push(repoA, "origin") @@ -111,18 +116,21 @@ func _RebaseTheirs(t testing.TB) { bug2, err := ReadLocalBug(repoB, bug1.Id()) require.NoError(t, err) + assert.False(t, bug2.NeedCommit()) reneB, err := identity.ReadLocal(repoA, reneA.Id()) require.NoError(t, err) _, err = AddComment(bug2, reneB, time.Now().Unix(), "message2") require.NoError(t, err) + assert.True(t, bug2.NeedCommit()) _, err = AddComment(bug2, reneB, time.Now().Unix(), "message3") require.NoError(t, err) _, err = AddComment(bug2, reneB, time.Now().Unix(), "message4") require.NoError(t, err) err = bug2.Commit(repoB) require.NoError(t, err) + assert.False(t, bug2.NeedCommit()) // B --> remote _, err = Push(repoB, "origin") diff --git a/bug/bug_test.go b/bug/bug_test.go index 4e8a9440..35e8a395 100644 --- a/bug/bug_test.go +++ b/bug/bug_test.go @@ -78,8 +78,11 @@ func TestBugCommitLoad(t *testing.T) { repo := repository.NewMockRepoForTest() + assert.True(t, bug1.NeedCommit()) + err := bug1.Commit(repo) assert.Nil(t, err) + assert.False(t, bug1.NeedCommit()) bug2, err := ReadLocalBug(repo, bug1.Id()) assert.NoError(t, err) @@ -90,8 +93,11 @@ func TestBugCommitLoad(t *testing.T) { bug1.Append(setTitleOp) bug1.Append(addCommentOp) + assert.True(t, bug1.NeedCommit()) + err = bug1.Commit(repo) assert.Nil(t, err) + assert.False(t, bug1.NeedCommit()) bug3, err := ReadLocalBug(repo, bug1.Id()) assert.NoError(t, err) diff --git a/bug/interface.go b/bug/interface.go index 8266e99e..796ee569 100644 --- a/bug/interface.go +++ b/bug/interface.go @@ -16,8 +16,8 @@ type Interface interface { // Append an operation into the staging area, to be committed later Append(op Operation) - // Append an operation into the staging area, to be committed later - HasPendingOp() bool + // Indicate that the in-memory state changed and need to be commit in the repository + NeedCommit() bool // Commit write the staging area in Git and move the operations to the packs Commit(repo repository.ClockedRepo) error -- cgit