mirror of https://github.com/borgbackup/borg.git
Count non-unique chunks deduplicated sizes
This commit is contained in:
parent
59571115a1
commit
6ed0746934
|
@ -19,7 +19,7 @@ import time
|
||||||
import unicodedata
|
import unicodedata
|
||||||
import uuid
|
import uuid
|
||||||
from binascii import hexlify
|
from binascii import hexlify
|
||||||
from collections import namedtuple, deque, abc
|
from collections import namedtuple, deque, abc, Counter
|
||||||
from datetime import datetime, timezone, timedelta
|
from datetime import datetime, timezone, timedelta
|
||||||
from fnmatch import translate
|
from fnmatch import translate
|
||||||
from functools import wraps, partial, lru_cache
|
from functools import wraps, partial, lru_cache
|
||||||
|
@ -1546,11 +1546,15 @@ class ItemFormatter(BaseFormatter):
|
||||||
|
|
||||||
def calculate_dsize(self, item):
|
def calculate_dsize(self, item):
|
||||||
chunk_index = self.archive.cache.chunks
|
chunk_index = self.archive.cache.chunks
|
||||||
return sum(c.size for c in item.get('chunks', []) if chunk_index[c.id].refcount == 1)
|
chunks = item.get('chunks', [])
|
||||||
|
chunks_counter = Counter(c.id for c in chunks)
|
||||||
|
return sum(c.size for c in chunks if chunk_index[c.id].refcount == chunks_counter[c.id])
|
||||||
|
|
||||||
def calculate_dcsize(self, item):
|
def calculate_dcsize(self, item):
|
||||||
chunk_index = self.archive.cache.chunks
|
chunk_index = self.archive.cache.chunks
|
||||||
return sum(c.csize for c in item.get('chunks', []) if chunk_index[c.id].refcount == 1)
|
chunks = item.get('chunks', [])
|
||||||
|
chunks_counter = Counter(c.id for c in chunks)
|
||||||
|
return sum(c.csize for c in chunks if chunk_index[c.id].refcount == chunks_counter[c.id])
|
||||||
|
|
||||||
def hash_item(self, hash_function, item):
|
def hash_item(self, hash_function, item):
|
||||||
if 'chunks' not in item:
|
if 'chunks' not in item:
|
||||||
|
|
Loading…
Reference in New Issue