[diffoscope] 07/09: Revert "utils.libarchive: No need to track archive directory locations."

Maria Glukhova siamezzze-guest at moszumanska.debian.org
Mon Feb 13 20:39:59 CET 2017

This is an automated email from the git hooks/post-receive script.

siamezzze-guest pushed a commit to branch siamezzze/containers
in repository diffoscope.

commit c9a83a97c593a53a472db8c01ccf503cd4e6677f
Author: Maria Glukhova <siamezzze at gmail.com>
Date:   Mon Feb 13 21:01:06 2017 +0200

    Revert "utils.libarchive: No need to track archive directory locations."
    Skipping directories while unpacking libarchive means that
    directories are not listed in get_member_names(). That leads to
    a difference in behavior between different archive types
    (e.g. for ZIP-files get_member_names() still returns full file
    list including directories). That could also lead to a confusion
    in case of empty directories.
    This reverts commit acebcc0b0d4192d34ada8e8d1e84bc64dcf5b8c8.
 diffoscope/comparators/utils/libarchive.py | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/diffoscope/comparators/utils/libarchive.py b/diffoscope/comparators/utils/libarchive.py
index 4924a31..5b9618e 100644
--- a/diffoscope/comparators/utils/libarchive.py
+++ b/diffoscope/comparators/utils/libarchive.py
@@ -209,10 +209,6 @@ class LibarchiveContainer(Archive):
         with libarchive.file_reader(self.source.path) as archive:
             for idx, entry in enumerate(archive):
-                # Always skip directories
-                if entry.isdir:
-                    continue
                 # Save extracting excluded files
                 if any_excluded(entry.pathname):
@@ -222,6 +218,9 @@ class LibarchiveContainer(Archive):
                 dst = os.path.join(tmpdir, str(idx))
                 self._members[entry.pathname] = dst
+                if entry.isdir:
+                    continue
                 logger.debug("Extracting %s to %s", entry.pathname, dst)
                 with open(dst, 'wb') as f:

Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git

More information about the diffoscope mailing list