aboutsummaryrefslogtreecommitdiffstats
path: root/worktree_test.go
diff options
context:
space:
mode:
authorMathias Rüdiger <ruediger@blueboot.org>2020-06-22 09:09:19 +0200
committerMathias Rüdiger <ruediger@blueboot.org>2020-06-22 09:09:19 +0200
commit23e21f0cfc6196d5dce8fc20af0ecc9701aabe4f (patch)
tree4a8c9ab3e3ef1676e4cf120beb7e25aac8855b05 /worktree_test.go
parent16918a5be9a2076bbb686b2580da1988d557da6d (diff)
downloadgo-git-23e21f0cfc6196d5dce8fc20af0ecc9701aabe4f.tar.gz
Report "Already up to date" when local repository ahead of remote
If you run 'git pull', do a commit and run 'git pull' again git will report "Already up to date" whereas go-git would report a reports non-fast-forward update. This commit changes the behavior of go-git to match that of git.
Diffstat (limited to 'worktree_test.go')
-rw-r--r--worktree_test.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/worktree_test.go b/worktree_test.go
index c808ebd..59c80af 100644
--- a/worktree_test.go
+++ b/worktree_test.go
@@ -265,6 +265,26 @@ func (s *RepositorySuite) TestPullAdd(c *C) {
c.Assert(branch.Hash().String(), Not(Equals), "6ecf0ef2c2dffb796033e5a02219af86ec6584e5")
}
+func (s *WorktreeSuite) TestPullAlreadyUptodate(c *C) {
+ path := fixtures.Basic().ByTag("worktree").One().Worktree().Root()
+
+ r, err := Clone(memory.NewStorage(), memfs.New(), &CloneOptions{
+ URL: filepath.Join(path, ".git"),
+ })
+
+ c.Assert(err, IsNil)
+
+ w, err := r.Worktree()
+ c.Assert(err, IsNil)
+ err = ioutil.WriteFile(filepath.Join(path, "bar"), []byte("bar"), 0755)
+ c.Assert(err, IsNil)
+ _, err = w.Commit("bar", &CommitOptions{Author: defaultSignature()})
+ c.Assert(err, IsNil)
+
+ err = w.Pull(&PullOptions{})
+ c.Assert(err, Equals, NoErrAlreadyUpToDate)
+}
+
func (s *WorktreeSuite) TestCheckout(c *C) {
fs := memfs.New()
w := &Worktree{