view mercurial/node.py @ 21885:fe9db58b0b2d

subrepo: ensure "lock.release()" execution at the end of "storeclean()" Before this patch, "lock.release()" for "self._repo" in "storeclean()" of "hgsubrepo" may not be executed, if unexpected exception is raised, because it isn't executed in "finally" clause. This patch ensures "lock.release()" execution at the end of "storeclean()" by moving it into "finally" clause. This patch chooses moving almost all lines in "storeclean()" into "_storeclean()" instead of indenting them for "try/finally" clauses, to keep diff simple for review-ability.
author FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
date Fri, 20 Jun 2014 00:21:19 +0900
parents 25e572394f5c
children 1a5211f2f87f
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 or any later version.

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])