mirror of https://github.com/borgbackup/borg.git
fuse: refactor file versioning code
This commit is contained in:
parent
5d22078f35
commit
001500ab99
|
@ -162,17 +162,18 @@ class FuseOperations(llfuse.Operations):
|
||||||
self.process_leaf(segments[-1], item, parent, prefix, is_dir)
|
self.process_leaf(segments[-1], item, parent, prefix, is_dir)
|
||||||
|
|
||||||
def process_leaf(self, name, item, parent, prefix, is_dir):
|
def process_leaf(self, name, item, parent, prefix, is_dir):
|
||||||
def version_name(name, item):
|
def file_version(item):
|
||||||
if 'chunks' in item:
|
if 'chunks' in item:
|
||||||
ident = 0
|
ident = 0
|
||||||
for chunkid, _, _ in item.chunks:
|
for chunkid, _, _ in item.chunks:
|
||||||
ident = adler32(chunkid, ident)
|
ident = adler32(chunkid, ident)
|
||||||
name = name + safe_encode('.%08x' % ident)
|
return ident
|
||||||
return name
|
|
||||||
|
|
||||||
if self.versions and not is_dir:
|
if self.versions and not is_dir:
|
||||||
parent = self.process_inner(name, parent)
|
parent = self.process_inner(name, parent)
|
||||||
name = version_name(name, item)
|
version = file_version(item)
|
||||||
|
if version is not None:
|
||||||
|
name += safe_encode('.%08x' % version)
|
||||||
|
|
||||||
if 'source' in item and stat.S_ISREG(item.mode):
|
if 'source' in item and stat.S_ISREG(item.mode):
|
||||||
inode = self._find_inode(item.source, prefix)
|
inode = self._find_inode(item.source, prefix)
|
||||||
|
|
Loading…
Reference in New Issue