aboutsummaryrefslogtreecommitdiffstats
path: root/worktree_test.go
diff options
context:
space:
mode:
authorPaulo Gomes <pjbgf@linux.com>2024-06-28 21:20:36 +0000
committerGitHub <noreply@github.com>2024-06-28 21:20:36 +0000
commitcc6b98e366436b69a0e91aa0698972d583080900 (patch)
treef0af1e3bff6a7a69f009faac0bef2915ebcaa385 /worktree_test.go
parentc817be6af4dde11b0c0c978dc2ecb77a2065c8b1 (diff)
parent86d3f41c8eb5939f384d30667f6097d716c1e916 (diff)
downloadgo-git-cc6b98e366436b69a0e91aa0698972d583080900.tar.gz
Merge pull request #995 from msuozzo/git-clean
Add option approximating `git clean -x` flag.
Diffstat (limited to 'worktree_test.go')
-rw-r--r--worktree_test.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/worktree_test.go b/worktree_test.go
index 3e151f6..5b0cc32 100644
--- a/worktree_test.go
+++ b/worktree_test.go
@@ -2371,6 +2371,45 @@ func (s *WorktreeSuite) TestClean(c *C) {
c.Assert(err, ErrorMatches, ".*(no such file or directory.*|.*file does not exist)*.")
}
+func (s *WorktreeSuite) TestCleanAll(c *C) {
+ fs := fixtures.Basic().ByTag("worktree").One().Worktree()
+ r, err := PlainOpen(fs.Root())
+ c.Assert(err, IsNil)
+ w, err := r.Worktree()
+ c.Assert(err, IsNil)
+
+ err = util.WriteFile(w.Filesystem, ".gitignore", []byte("foo\n"), 0755)
+ c.Assert(err, IsNil)
+
+ _, err = w.Add(".")
+ c.Assert(err, IsNil)
+
+ commitOpts := &CommitOptions{Author: &object.Signature{Name: "foo", Email: "foo@foo.foo", When: time.Now()}}
+ _, err = w.Commit("Add gitignore", commitOpts)
+ c.Assert(err, IsNil)
+
+ status, err := w.Status()
+ c.Assert(err, IsNil)
+ c.Assert(len(status), Equals, 0)
+
+ err = util.WriteFile(w.Filesystem, "foo", []byte("foo\n"), 0755)
+ c.Assert(err, IsNil)
+
+ status, err = w.Status()
+ c.Assert(err, IsNil)
+ c.Assert(len(status), Equals, 0)
+
+ err = w.Clean(&CleanOptions{All: true, Dir: true})
+ c.Assert(err, IsNil)
+
+ status, err = w.Status()
+ c.Assert(err, IsNil)
+ c.Assert(len(status), Equals, 0)
+
+ _, err = fs.Lstat("foo")
+ c.Assert(err, ErrorMatches, ".*(no such file or directory.*|.*file does not exist)*.")
+}
+
func (s *WorktreeSuite) TestCleanBare(c *C) {
storer := memory.NewStorage()