Mercurial > hg > mercurial-crew-with-dirclash
diff mercurial/node.py @ 1089:142b5d5ec9cc
Break apart hg.py
- move the various parts of hg.py into their own files
- create node.py to store node manipulation functions
author | mpm@selenic.com |
---|---|
date | Sat, 27 Aug 2005 14:21:25 -0700 |
parents | |
children | d62130f99a73 |
line wrap: on
line diff
new file mode 100644 --- /dev/null +++ b/mercurial/node.py @@ -0,0 +1,36 @@ +""" +node.py - basic nodeid manipulation for mercurial + +Copyright 2005 Matt Mackall <mpm@selenic.com> + +This software may be used and distributed according to the terms +of the GNU General Public License, incorporated herein by reference. +""" + +import sha, binascii + +nullid = "\0" * 20 + +def hex(node): + return binascii.hexlify(node) + +def bin(node): + return binascii.unhexlify(node) + +def short(node): + return hex(node[:6]) + +def hash(text, p1, p2): + """generate a hash from the given text and its parent hashes + + This hash combines both the current file contents and its history + in a manner that makes it easy to distinguish nodes with the same + content in the revision graph. + """ + l = [p1, p2] + l.sort() + s = sha.new(l[0]) + s.update(l[1]) + s.update(text) + return s.digest() +