|
@@ -25,6 +25,7 @@ import os
|
|
|
import re
|
|
|
import shutil
|
|
|
import tempfile
|
|
|
+import unittest
|
|
|
from dulwich.tests import TestCase
|
|
|
|
|
|
from dulwich.ignore import (
|
|
@@ -216,19 +217,6 @@ class IgnoreFilterManagerTests(TestCase):
|
|
|
f.write(b'/blie\n')
|
|
|
with open(os.path.join(repo.path, 'dir', 'blie'), 'wb') as f:
|
|
|
f.write(b'IGNORED')
|
|
|
-
|
|
|
- os.makedirs(os.path.join(repo.path, 'dir4', 'foo'))
|
|
|
- with open(os.path.join(repo.path, 'dir4', '.gitignore'), 'wb') as f:
|
|
|
- f.write(b'/*\n')
|
|
|
- f.write(b'!/foo\n')
|
|
|
-
|
|
|
- with open(os.path.join(repo.path,
|
|
|
- 'dir4', 'foo', '.gitignore'), 'wb') as f:
|
|
|
- f.write(b'/bar\n')
|
|
|
-
|
|
|
- with open(os.path.join(repo.path, 'dir4', 'foo', 'bar'), 'wb') as f:
|
|
|
- f.write(b'IGNORED')
|
|
|
-
|
|
|
p = os.path.join(repo.controldir(), 'info', 'exclude')
|
|
|
with open(p, 'wb') as f:
|
|
|
f.write(b'/excluded\n')
|
|
@@ -244,7 +232,26 @@ class IgnoreFilterManagerTests(TestCase):
|
|
|
self.assertFalse(m.is_ignored('dir3'))
|
|
|
self.assertTrue(m.is_ignored('dir3/'))
|
|
|
self.assertTrue(m.is_ignored('dir3/bla'))
|
|
|
- self.assertTrue(m.is_ignored('dir4/foo/bar'))
|
|
|
+
|
|
|
+ @unittest.expectedFailure
|
|
|
+ def test_nested_gitignores(self):
|
|
|
+ tmp_dir = tempfile.mkdtemp()
|
|
|
+ self.addCleanup(shutil.rmtree, tmp_dir)
|
|
|
+ repo = Repo.init(tmp_dir)
|
|
|
+
|
|
|
+ with open(os.path.join(repo.path, '.gitignore'), 'wb') as f:
|
|
|
+ f.write(b'/*\n')
|
|
|
+ f.write(b'!/foo\n')
|
|
|
+
|
|
|
+ os.mkdir(os.path.join(repo.path, 'foo'))
|
|
|
+ with open(os.path.join(repo.path, 'foo', '.gitignore'), 'wb') as f:
|
|
|
+ f.write(b'/bar\n')
|
|
|
+
|
|
|
+ with open(os.path.join(repo.path, 'foo', 'bar'), 'wb') as f:
|
|
|
+ f.write(b'IGNORED')
|
|
|
+
|
|
|
+ m = IgnoreFilterManager.from_repo(repo)
|
|
|
+ self.assertTrue(m.is_ignored('foo/bar'))
|
|
|
|
|
|
def test_load_ignore_ignorecase(self):
|
|
|
tmp_dir = tempfile.mkdtemp()
|