... | ... |
@@ -35,7 +35,8 @@ class FileDict(SortedDict): |
35 | 35 |
self[relative_file]['md5'] = md5 |
36 | 36 |
return md5 |
37 | 37 |
|
38 |
- def record_hardlink(self, relative_file, dev, inode, md5): |
|
38 |
+ def record_hardlink(self, relative_file, dev, inode, md5, size): |
|
39 |
+ if size == 0: return # don't record 0-length files |
|
39 | 40 |
if dev == 0 or inode == 0: return # Windows |
40 | 41 |
if dev not in self.hardlinks: |
41 | 42 |
self.hardlinks[dev] = dict() |
... | ... |
@@ -265,7 +265,7 @@ def fetch_local_list(args, is_src = False, recursive = None): |
265 | 265 |
except IOError: |
266 | 266 |
continue |
267 | 267 |
cache.add(sr.st_dev, sr.st_ino, sr.st_mtime, sr.st_size, md5) |
268 |
- loc_list.record_hardlink(relative_file, sr.st_dev, sr.st_ino, md5) |
|
268 |
+ loc_list.record_hardlink(relative_file, sr.st_dev, sr.st_ino, md5, sr.st_size) |
|
269 | 269 |
return loc_list, single_file |
270 | 270 |
|
271 | 271 |
def _maintain_cache(cache, local_list): |