From e674822888d12932216cfd9ff15f18ad77676d67 Mon Sep 17 00:00:00 2001 From: Thomas Waldmann Date: Tue, 17 Oct 2017 06:39:31 +0200 Subject: [PATCH] remove hardlinked symlinks warning, update docs, fixes #3175 the warning was annoying for people with a lot of such items and they can not do anything about it anyway. thus, just document this as a limitation. --- docs/faq.rst | 3 +++ src/borg/archive.py | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/faq.rst b/docs/faq.rst index e23f45a30..6726e15bc 100644 --- a/docs/faq.rst +++ b/docs/faq.rst @@ -97,6 +97,9 @@ Which file types, attributes, etc. are *not* preserved? Archive extraction has optional support to extract all-zero chunks as holes in a sparse file. * Some filesystem specific attributes, like btrfs NOCOW, see :ref:`platforms`. + * For hardlinked symlinks, the hardlinking can not be archived (and thus, + the hardlinking will not be done at extraction time). The symlinks will + be archived and extracted as non-hardlinked symlinks, see :issue:`2379`. Are there other known limitations? ---------------------------------- diff --git a/src/borg/archive.py b/src/borg/archive.py index b8189096e..0c18c1013 100644 --- a/src/borg/archive.py +++ b/src/borg/archive.py @@ -1063,12 +1063,11 @@ class FilesystemObjectProcessors: def process_symlink(self, path, st): # note: using hardlinkable=False because we can not support hardlinked symlinks, # due to the dual-use of item.source, see issue #2343: + # hardlinked symlinks will be archived [and extracted] as non-hardlinked symlinks. with self.create_helper(path, st, 's', hardlinkable=False) as (item, status, hardlinked, hardlink_master): with backup_io('readlink'): source = os.readlink(path) item.source = source - if st.st_nlink > 1: - logger.warning('hardlinked symlinks will be archived as non-hardlinked symlinks!') item.update(self.metadata_collector.stat_attrs(st, path)) return status