Mercurial > hgrepos > Python > apps > py-cutils
comparison cutils/treesum.py @ 269:fc002983253c
treesum: also return the algorithm used by directory digests.
This is a preparation for re-using it from existing treesum files.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Tue, 18 Feb 2025 13:10:05 +0100 |
| parents | 8aadffaaad5f |
| children | 42f4ca423ab3 |
comparison
equal
deleted
inserted
replaced
| 268:8aadffaaad5f | 269:fc002983253c |
|---|---|
| 607 if self._size_only: | 607 if self._size_only: |
| 608 self._writer.write_size(opath, None) | 608 self._writer.write_size(opath, None) |
| 609 else: | 609 else: |
| 610 self._writer.write_file_digest(self._algorithm[1], opath, None) | 610 self._writer.write_file_digest(self._algorithm[1], opath, None) |
| 611 self._writer.flush() | 611 self._writer.flush() |
| 612 return (None, None) | 612 return (None, None, None) |
| 613 if self._utf8_mode: | 613 if self._utf8_mode: |
| 614 fsobjects.sort(key=walk.WalkDirEntry.sort_key_u8) | 614 fsobjects.sort(key=walk.WalkDirEntry.sort_key_u8) |
| 615 else: | 615 else: |
| 616 fsobjects.sort(key=walk.WalkDirEntry.sort_key_fs) | 616 fsobjects.sort(key=walk.WalkDirEntry.sort_key_fs) |
| 617 dir_dgst = self._algorithm[0]() | 617 dir_dgst = self._algorithm[0]() |
| 692 # | 692 # |
| 693 # Follow the symlink to dir or handle a "real" directory | 693 # Follow the symlink to dir or handle a "real" directory |
| 694 # | 694 # |
| 695 | 695 |
| 696 # Get subdir data from recursing into it | 696 # Get subdir data from recursing into it |
| 697 sub_dir_dgst, sub_dir_size = self._generate( | 697 sub_dir_algo, sub_dir_dgst, sub_dir_size = self._generate( |
| 698 root, top + (fso.name, )) | 698 root, top + (fso.name, )) |
| 699 | 699 |
| 700 if sub_dir_dgst is None or sub_dir_size is None: | 700 if (sub_dir_algo is None or sub_dir_dgst is None |
| 701 or sub_dir_size is None): | |
| 701 # | 702 # |
| 702 # This should not happen: | 703 # This should not happen: |
| 703 # - top-level directories are handled above | 704 # - top-level directories are handled above |
| 704 # - other filesystem objects should also have been | 705 # - other filesystem objects should also have been |
| 705 # handled already | 706 # handled already |
| 919 sz = dir_size if self._print_size else None | 920 sz = dir_size if self._print_size else None |
| 920 self._writer.write_file_digest( | 921 self._writer.write_file_digest( |
| 921 self._algorithm[1], opath, dir_dgst.digest(), | 922 self._algorithm[1], opath, dir_dgst.digest(), |
| 922 use_base64=self._use_base64, size=sz) | 923 use_base64=self._use_base64, size=sz) |
| 923 self._writer.flush() | 924 self._writer.flush() |
| 924 return (dir_dgst.digest(), dir_size) | 925 return (self._algorithm[1], dir_dgst.digest(), dir_size) |
| 925 | 926 |
| 926 | 927 |
| 927 def join_output_path(top, name): | 928 def join_output_path(top, name): |
| 928 if name is None: | 929 if name is None: |
| 929 # a path for a directory is to be computed | 930 # a path for a directory is to be computed |
