view mercurial/node.py @ 9474:6ea653272c09

convert: fix marshalling in P4 convert extension to use a binary stream The Perforce convert extension uses the p4 -G command line option and marshal.load to obtain information about the history of a Perforce depot. The method marshal.load must be provided with a binary stream (mode='rb') in order to function reliably. Certain changelist descriptions or other elements in a depot history could trigger a premature EOFError, causing the conversion process to fail. This may resolve the issue discussed in the following thread: http://www.selenic.com/pipermail/mercurial/2009-July/026813.html
author Peter Ingebretson <pingebre@yahoo.com>
date Wed, 23 Sep 2009 15:36:51 +0200
parents 8b2cd04a6e97
children 25e572394f5c
line wrap: on
line source

# node.py - basic nodeid manipulation for mercurial
#
# Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2, incorporated herein by reference.

import binascii

nullrev = -1
nullid = "\0" * 20

# This ugly style has a noticeable effect in manifest parsing
hex = binascii.hexlify
bin = binascii.unhexlify

def short(node):
    return hex(node[:6])