mirror of
https://github.com/borgbackup/borg.git
synced 2024-12-23 16:26:29 +00:00
borg mount: support --consider-part-files correctly, fixes #3347
This commit is contained in:
parent
e97deafb16
commit
caece370b8
1 changed files with 4 additions and 3 deletions
|
@ -119,7 +119,7 @@ def get(self, inode):
|
|||
else:
|
||||
raise ValueError('Invalid entry type in self.meta')
|
||||
|
||||
def iter_archive_items(self, archive_item_ids, filter=None):
|
||||
def iter_archive_items(self, archive_item_ids, filter=None, consider_part_files=False):
|
||||
unpacker = msgpack.Unpacker()
|
||||
|
||||
# Current offset in the metadata stream, which consists of all metadata chunks glued together
|
||||
|
@ -163,7 +163,7 @@ def write_bytes(append_msgpacked_bytes):
|
|||
break
|
||||
|
||||
item = Item(internal_dict=item)
|
||||
if filter and not filter(item):
|
||||
if filter and not filter(item) or not consider_part_files and 'part' in item:
|
||||
msgpacked_bytes = b''
|
||||
continue
|
||||
|
||||
|
@ -306,7 +306,8 @@ def peek_and_store_hardlink_masters(item, matched):
|
|||
hardlink_masters[item.get('path')] = (item.get('chunks'), None)
|
||||
|
||||
filter = Archiver.build_filter(matcher, peek_and_store_hardlink_masters, strip_components)
|
||||
for item_inode, item in self.cache.iter_archive_items(archive.metadata.items, filter=filter):
|
||||
for item_inode, item in self.cache.iter_archive_items(archive.metadata.items, filter=filter,
|
||||
consider_part_files=self._args.consider_part_files):
|
||||
if strip_components:
|
||||
item.path = os.sep.join(item.path.split(os.sep)[strip_components:])
|
||||
path = os.fsencode(item.path)
|
||||
|
|
Loading…
Reference in a new issue