##// END OF EJS Templates
refactor: prefer checks against nullrev over nullid...
refactor: prefer checks against nullrev over nullid A common pattern is using a changeset context and obtaining the node to compare against nullid. Change this to obtain the nullrev instead. In the future, the nullid becomes a property of the repository and is no longer a global constant, so using nullrev is much easier to reason about. Python function call overhead makes the difference moot, but future changes will result in more dictionary lookups otherwise, so prefer the simpler pattern. Differential Revision: https://phab.mercurial-scm.org/D10290

File last commit:

r46597:97205cf0 default
r47601:728d89f6 default
Show More
packagelib.sh
43 lines | 1.3 KiB | application/x-sh | BashLexer
# Extract version number into 4 parts, some of which may be empty:
#
# version: the numeric part of the most recent tag. Will always look like 1.3.
#
# type: if an rc build, "rc", otherwise empty
#
# distance: the distance from the nearest tag, or empty if built from a tag
#
# node: the node|short hg was built from, or empty if built from a tag
gethgversion() {
if [ -z "${1+x}" ]; then
python="python"
else
python="$1"
fi
export HGRCPATH=
export HGPLAIN=
make cleanbutpackages PYTHON=$python
make local PURE=--pure PYTHON=$python
HG="$PWD/hg"
$python "$HG" version > /dev/null || { echo 'abort: hg version failed!'; exit 1 ; }
hgversion=`LANGUAGE=C $python "$HG" version | sed -ne 's/.*(version \(.*\))$/\1/p'`
if echo $hgversion | grep + > /dev/null 2>&1 ; then
tmp=`echo $hgversion | cut -d+ -f 2`
hgversion=`echo $hgversion | cut -d+ -f 1`
distance=`echo $tmp | cut -d- -f 1`
node=`echo $tmp | cut -d- -f 2`
else
distance=''
node=''
fi
if echo $hgversion | grep -E -- '[0-9]\.[0-9](\.[0-9])?rc' > /dev/null 2>&1; then
version=`echo $hgversion | cut -d'r' -f1`
type="rc`echo $hgversion | cut -d'c' -f2-`"
else
version=$hgversion
type=''
fi
}