summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRonny Pfannschmidt <opensource@ronnypfannschmidt.de>2018-03-20 08:03:08 +0100
committerGitHub <noreply@github.com>2018-03-20 08:03:08 +0100
commita5473321ef420624c1b13bdc0398f05f1f4837af (patch)
tree6fef84545a5456d6d1a71df528b792cc896f5f09
parentb7182bad424848e86abf1d747fad8327d7933920 (diff)
parent67a62dbef422a84bda7faeeaeef4bc25fc85e29a (diff)
downloadsetuptools-scm-a5473321ef420624c1b13bdc0398f05f1f4837af.tar.gz
Merge pull request #227 from sileht/master
git: ignore directory of the git archive output
-rw-r--r--setuptools_scm/git.py5
-rw-r--r--testing/test_git.py9
2 files changed, 12 insertions, 2 deletions
diff --git a/setuptools_scm/git.py b/setuptools_scm/git.py
index 6ec9962..83898ec 100644
--- a/setuptools_scm/git.py
+++ b/setuptools_scm/git.py
@@ -129,8 +129,9 @@ def _list_files_in_archive():
cmd = ['git', 'archive', 'HEAD']
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE)
tf = tarfile.open(fileobj=proc.stdout, mode='r|*')
- for name in tf.getnames():
- print(name)
+ for member in tf.getmembers():
+ if member.type != tarfile.DIRTYPE:
+ print(member.name)
if __name__ == "__main__":
diff --git a/testing/test_git.py b/testing/test_git.py
index 4f4ad53..e829fc8 100644
--- a/testing/test_git.py
+++ b/testing/test_git.py
@@ -124,3 +124,12 @@ def test_git_archive_export_ignore(wd):
wd('git add test1.txt test2.txt')
wd.commit()
assert integration.find_files(str(wd.cwd)) == ['test1.txt']
+
+
+@pytest.mark.issue(228)
+def test_git_archive_subdirectory(wd):
+ wd('mkdir foobar')
+ wd.write('foobar/test1.txt', 'test')
+ wd('git add foobar')
+ wd.commit()
+ assert integration.find_files(str(wd.cwd)) == ['foobar/test1.txt']