Mercurial > hgrepos > Python > apps > py-cutils
comparison cutils/treesum.py @ 132:8b73dca5db97
Encode the link targets as netstrings also before digesting them
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Thu, 02 Jan 2025 20:55:51 +0100 |
| parents | 3a18d71d7c50 |
| children | cf4fb9a33f94 |
comparison
equal
deleted
inserted
replaced
| 131:3a18d71d7c50 | 132:8b73dca5db97 |
|---|---|
| 163 dir_digests = {} | 163 dir_digests = {} |
| 164 | 164 |
| 165 if not handle_root_logical and os.path.islink(root): | 165 if not handle_root_logical and os.path.islink(root): |
| 166 linktgt = util.fsencode(os.readlink(root)) | 166 linktgt = util.fsencode(os.readlink(root)) |
| 167 linkdgst = algorithm[0]() | 167 linkdgst = algorithm[0]() |
| 168 linkdgst.update(linktgt) | 168 linkdgst.update(b"%d:%s," % (len(linktgt), linktgt)) |
| 169 dir_dgst = algorithm[0]() | 169 dir_dgst = algorithm[0]() |
| 170 dir_dgst.update(b"1:S,3:./@,") | 170 dir_dgst.update(b"1:S,3:./@,") |
| 171 dir_dgst.update(linkdgst.digest()) | 171 dir_dgst.update(linkdgst.digest()) |
| 172 outfp.write(format_bsd_line( | 172 outfp.write(format_bsd_line( |
| 173 algorithm[1], | 173 algorithm[1], |
| 183 dir_dgst = algorithm[0]() | 183 dir_dgst = algorithm[0]() |
| 184 for dn in dirs: | 184 for dn in dirs: |
| 185 if dn.is_symlink and not follow_directory_symlinks: | 185 if dn.is_symlink and not follow_directory_symlinks: |
| 186 linktgt = util.fsencode(os.readlink(dn.path)) | 186 linktgt = util.fsencode(os.readlink(dn.path)) |
| 187 linkdgst = algorithm[0]() | 187 linkdgst = algorithm[0]() |
| 188 linkdgst.update(linktgt) | 188 linkdgst.update(b"%d:%s," % (len(linktgt), linktgt)) |
| 189 dir_dgst.update(b"1:S,%d:%s," % (len(dn.fsname), dn.fsname)) | 189 dir_dgst.update(b"1:S,%d:%s," % (len(dn.fsname), dn.fsname)) |
| 190 dir_dgst.update(linkdgst.digest()) | 190 dir_dgst.update(linkdgst.digest()) |
| 191 opath = "/".join(top) + "/" + dn.name if top else dn.name | 191 opath = "/".join(top) + "/" + dn.name if top else dn.name |
| 192 outfp.write( | 192 outfp.write( |
| 193 format_bsd_line( | 193 format_bsd_line( |
