diff --git a/src/borg/helpers/fs.py b/src/borg/helpers/fs.py index 07c263054..66e1ecdfb 100644 --- a/src/borg/helpers/fs.py +++ b/src/borg/helpers/fs.py @@ -346,7 +346,7 @@ class HardLinkManager: def __init__(self, *, id_type, info_type): self._map = {} self.id_type = id_type - self.info_type = info_type + self.info_type = info_type # can be a single type or a tuple of types def borg1_hardlinkable(self, mode): # legacy return stat.S_ISREG(mode) or stat.S_ISBLK(mode) or stat.S_ISCHR(mode) or stat.S_ISFIFO(mode) diff --git a/src/borg/upgrade.py b/src/borg/upgrade.py index 35d968837..9f6f653f0 100644 --- a/src/borg/upgrade.py +++ b/src/borg/upgrade.py @@ -1,4 +1,5 @@ from struct import Struct +from types import NoneType from .constants import REQUIRED_ITEM_KEYS, CH_BUZHASH from .compress import ZLIB, ZLIB_legacy, ObfuscateSize @@ -53,7 +54,8 @@ class UpgraderFrom12To20: def new_archive(self, *, archive): self.archive = archive - self.hlm = HardLinkManager(id_type=bytes, info_type=list) # hlid -> chunks_correct + # hlid -> chunks_correct list (or None, for contentless hardlinks) + self.hlm = HardLinkManager(id_type=bytes, info_type=(list, NoneType)) def upgrade_item(self, *, item): """Upgrades the item as needed and removes legacy data."""