equal
deleted
inserted
replaced
|
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 |