Mercurial > public > mercurial-scm > hg-stable
view 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 source
""" 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()