Mercurial > public > mercurial-scm > hg-stable
comparison 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 |
comparison
equal
deleted
inserted
replaced
1088:39b916b1d8e4 | 1089:142b5d5ec9cc |
---|---|
1 """ | |
2 node.py - basic nodeid manipulation for mercurial | |
3 | |
4 Copyright 2005 Matt Mackall <mpm@selenic.com> | |
5 | |
6 This software may be used and distributed according to the terms | |
7 of the GNU General Public License, incorporated herein by reference. | |
8 """ | |
9 | |
10 import sha, binascii | |
11 | |
12 nullid = "\0" * 20 | |
13 | |
14 def hex(node): | |
15 return binascii.hexlify(node) | |
16 | |
17 def bin(node): | |
18 return binascii.unhexlify(node) | |
19 | |
20 def short(node): | |
21 return hex(node[:6]) | |
22 | |
23 def hash(text, p1, p2): | |
24 """generate a hash from the given text and its parent hashes | |
25 | |
26 This hash combines both the current file contents and its history | |
27 in a manner that makes it easy to distinguish nodes with the same | |
28 content in the revision graph. | |
29 """ | |
30 l = [p1, p2] | |
31 l.sort() | |
32 s = sha.new(l[0]) | |
33 s.update(l[1]) | |
34 s.update(text) | |
35 return s.digest() | |
36 |