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.
This commit is contained in:
Thomas Waldmann 2017-10-17 06:39:31 +02:00
parent ac0ad9adf0
commit e674822888
2 changed files with 4 additions and 2 deletions

View File

@ -97,6 +97,9 @@ Which file types, attributes, etc. are *not* preserved?
Archive extraction has optional support to extract all-zero chunks as Archive extraction has optional support to extract all-zero chunks as
holes in a sparse file. holes in a sparse file.
* Some filesystem specific attributes, like btrfs NOCOW, see :ref:`platforms`. * 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? Are there other known limitations?
---------------------------------- ----------------------------------

View File

@ -1063,12 +1063,11 @@ class FilesystemObjectProcessors:
def process_symlink(self, path, st): def process_symlink(self, path, st):
# note: using hardlinkable=False because we can not support hardlinked symlinks, # note: using hardlinkable=False because we can not support hardlinked symlinks,
# due to the dual-use of item.source, see issue #2343: # 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 self.create_helper(path, st, 's', hardlinkable=False) as (item, status, hardlinked, hardlink_master):
with backup_io('readlink'): with backup_io('readlink'):
source = os.readlink(path) source = os.readlink(path)
item.source = source 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)) item.update(self.metadata_collector.stat_attrs(st, path))
return status return status