Skip to content
This repository was archived by the owner on Sep 11, 2020. It is now read-only.

Commit db522f1

Browse files
authored
Merge pull request #1070 from fbsb/fix/enable-excluded-patterns
worktree: allow manual ignore patterns when no .gitignore is available
2 parents af1e381 + b2e0af9 commit db522f1

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

worktree_status.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,16 @@ func (w *Worktree) diffStagingWithWorktree(reverse bool) (merkletrie.Changes, er
142142

143143
func (w *Worktree) excludeIgnoredChanges(changes merkletrie.Changes) merkletrie.Changes {
144144
patterns, err := gitignore.ReadPatterns(w.Filesystem, nil)
145-
if err != nil || len(patterns) == 0 {
145+
if err != nil {
146146
return changes
147147
}
148148

149149
patterns = append(patterns, w.Excludes...)
150150

151+
if len(patterns) == 0 {
152+
return changes
153+
}
154+
151155
m := gitignore.NewMatcher(patterns)
152156

153157
var res merkletrie.Changes

worktree_test.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,6 +1129,34 @@ func (s *WorktreeSuite) TestIgnored(c *C) {
11291129
c.Assert(file.Worktree, Equals, Untracked)
11301130
}
11311131

1132+
func (s *WorktreeSuite) TestExcludedNoGitignore(c *C) {
1133+
f := fixtures.ByTag("empty").One()
1134+
r := s.NewRepository(f)
1135+
1136+
fs := memfs.New()
1137+
w := &Worktree{
1138+
r: r,
1139+
Filesystem: fs,
1140+
}
1141+
1142+
_, err := fs.Open(".gitignore")
1143+
c.Assert(err, Equals, os.ErrNotExist)
1144+
1145+
w.Excludes = make([]gitignore.Pattern, 0)
1146+
w.Excludes = append(w.Excludes, gitignore.ParsePattern("foo", nil))
1147+
1148+
err = util.WriteFile(w.Filesystem, "foo", []byte("FOO"), 0755)
1149+
c.Assert(err, IsNil)
1150+
1151+
status, err := w.Status()
1152+
c.Assert(err, IsNil)
1153+
c.Assert(status, HasLen, 0)
1154+
1155+
file := status.File("foo")
1156+
c.Assert(file.Staging, Equals, Untracked)
1157+
c.Assert(file.Worktree, Equals, Untracked)
1158+
}
1159+
11321160
func (s *WorktreeSuite) TestAddModified(c *C) {
11331161
fs := memfs.New()
11341162
w := &Worktree{

0 commit comments

Comments
 (0)