Mercurial > hgrepos > Python > apps > py-cutils
comparison cutils/treesum.py @ 313:dbad01eb9d03
treesum: comments
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 10 Mar 2025 10:04:02 +0100 |
| parents | 652870b20f9e |
| children | 1fbe9904b188 |
comparison
equal
deleted
inserted
replaced
| 312:f5f54b9c3552 | 313:dbad01eb9d03 |
|---|---|
| 745 if self._utf8_mode: | 745 if self._utf8_mode: |
| 746 opath = walk.WalkDirEntry.alt_u8(opath) | 746 opath = walk.WalkDirEntry.alt_u8(opath) |
| 747 else: | 747 else: |
| 748 opath = walk.WalkDirEntry.alt_fs(opath) | 748 opath = walk.WalkDirEntry.alt_fs(opath) |
| 749 if eno == 0: | 749 if eno == 0: |
| 750 # | |
| 751 # treesum file could be read. | |
| 752 # Now check whether the infos we got from it are | |
| 753 # compatible with our current requirements | |
| 754 # (digest, size). | |
| 755 # | |
| 750 if self._size_only: | 756 if self._size_only: |
| 751 if collector.size is None: | 757 if collector.size is None: |
| 752 # This is a severe error here | 758 # |
| 759 # This is a severe error here: just the size | |
| 760 # is required, but we have not got one. | |
| 761 # | |
| 753 self._writer.write_error(util.b( | 762 self._writer.write_error(util.b( |
| 754 util.interpolate_bytes( | 763 util.interpolate_bytes( |
| 755 "No size in treesum-file `%s' while" | 764 "No size in treesum-file `%s' while" |
| 756 " requiring it", | 765 " requiring it", |
| 757 fpath), | 766 fpath), |
| 774 else: | 783 else: |
| 775 sz = collector.size | 784 sz = collector.size |
| 776 else: | 785 else: |
| 777 sz = None | 786 sz = None |
| 778 if collector.digest is None: | 787 if collector.digest is None: |
| 779 # This is really a severe error | 788 # |
| 789 # This is really a severe error. Most probably | |
| 790 # the treesum file was created with | |
| 791 # "--size-only" and contains no digest. | |
| 792 # | |
| 780 self._writer.write_error(util.b( | 793 self._writer.write_error(util.b( |
| 781 util.interpolate_bytes( | 794 util.interpolate_bytes( |
| 782 "No digest in treesum-file `%s' while" | 795 "No digest in treesum-file `%s' while" |
| 783 " it is required", | 796 " it is required", |
| 784 fpath), | 797 fpath), |
| 788 opath, | 801 opath, |
| 789 None, | 802 None, |
| 790 use_base64=self._use_base64, | 803 use_base64=self._use_base64, |
| 791 size=sz) | 804 size=sz) |
| 792 return (errno.ESRCH, None, None, None) | 805 return (errno.ESRCH, None, None, None) |
| 806 # We got all required infos without errors | |
| 793 if self._size_only: | 807 if self._size_only: |
| 794 self._writer.write_size(opath, collector.size) | 808 self._writer.write_size(opath, collector.size) |
| 795 else: | 809 else: |
| 796 self._writer.write_file_digest( | 810 self._writer.write_file_digest( |
| 797 collector.algorithm, opath, collector.digest, | 811 collector.algorithm, opath, collector.digest, |
| 799 return (0, | 813 return (0, |
| 800 collector.algorithm, | 814 collector.algorithm, |
| 801 collector.digest, | 815 collector.digest, |
| 802 collector.size) | 816 collector.size) |
| 803 else: | 817 else: |
| 818 # | |
| 819 # treesum file could not be read | |
| 820 # | |
| 804 self._writer.write_error(util.interpolate_bytes( | 821 self._writer.write_error(util.interpolate_bytes( |
| 805 "Cannot read treesum-file `%s' for directory" | 822 "Cannot read treesum-file `%s' for directory" |
| 806 "`%s': %s", | 823 "`%s': %s", |
| 807 fpath, | 824 fpath, |
| 808 opath, | 825 opath, |
| 812 else: | 829 else: |
| 813 self._writer.write_file_digest( | 830 self._writer.write_file_digest( |
| 814 self._algorithm[1], opath, None, | 831 self._algorithm[1], opath, None, |
| 815 use_base64=self._use_base64, size=None) | 832 use_base64=self._use_base64, size=None) |
| 816 return (eno, None, None, None) | 833 return (eno, None, None, None) |
| 834 # | |
| 835 # No treesum file: just process normally with digesting | |
| 836 # | |
| 817 if self._utf8_mode: | 837 if self._utf8_mode: |
| 818 fsobjects.sort(key=walk.WalkDirEntry.sort_key_u8) | 838 fsobjects.sort(key=walk.WalkDirEntry.sort_key_u8) |
| 819 else: | 839 else: |
| 820 fsobjects.sort(key=walk.WalkDirEntry.sort_key_fs) | 840 fsobjects.sort(key=walk.WalkDirEntry.sort_key_fs) |
| 821 dir_dgst = self._algorithm[0]() | 841 dir_dgst = self._algorithm[0]() |
