comparison cutils/treesum.py @ 130:d5621028ce39

Change again the filename tags to be used for symlinks
author Franz Glasner <fzglas.hg@dom66.de>
date Thu, 02 Jan 2025 19:50:24 +0100
parents bdd8ea43074b
children 3a18d71d7c50
comparison
equal deleted inserted replaced
129:bdd8ea43074b 130:d5621028ce39
151 if not handle_root_logical and os.path.islink(root): 151 if not handle_root_logical and os.path.islink(root):
152 linktgt = util.fsencode(os.readlink(root)) 152 linktgt = util.fsencode(os.readlink(root))
153 linkdgst = algorithm[0]() 153 linkdgst = algorithm[0]()
154 linkdgst.update(linktgt) 154 linkdgst.update(linktgt)
155 dir_dgst = algorithm[0]() 155 dir_dgst = algorithm[0]()
156 dir_dgst.update(b"1:S,4:/./@,") 156 dir_dgst.update(b"1:S,3:./@,")
157 dir_dgst.update(linkdgst.digest()) 157 dir_dgst.update(linkdgst.digest())
158 outfp.write(format_bsd_line( 158 outfp.write(format_bsd_line(
159 algorithm[1], 159 algorithm[1],
160 dir_dgst.digest(), 160 dir_dgst.digest(),
161 "/./@", 161 "./@",
162 use_base64)) 162 use_base64))
163 outfp.flush() 163 outfp.flush()
164 return 164 return
165 165
166 for top, dirs, nondirs in walk.walk(root, follow_symlinks=False): 166 for top, dirs, nondirs in walk.walk(root, follow_symlinks=False):
221 return b"%s (%s)%s" % (digestname, filename, ls) 221 return b"%s (%s)%s" % (digestname, filename, ls)
222 if use_base64: 222 if use_base64:
223 value = base64.b64encode(value) 223 value = base64.b64encode(value)
224 else: 224 else:
225 value = binascii.hexlify(value) 225 value = binascii.hexlify(value)
226 if filename != b"/./@": 226 if filename != b"./@":
227 filename = util.normalize_filename(filename, True) 227 filename = util.normalize_filename(filename, True)
228 return b"%s (%s) = %s%s" % (digestname, filename, value, ls) 228 return b"%s (%s) = %s%s" % (digestname, filename, value, ls)
229 229
230 230
231 if __name__ == "__main__": 231 if __name__ == "__main__":