view contrib/packagelib.sh @ 25185:bf6b476f3b36

treemanifest: cache directory logs and manifests Since manifests instances are cached on the manifest log instance, we can cache directory manifests by caching the directory manifest logs. The directory manifest log cache is a plain dict, so it never expires; we assume that we can keep all the directories in memory. The cache is kept on the root manifestlog, so access to directory manifest logs now has to go through the root manifest log. The caching will soon not be only an optimization. When we start lazily loading directory manifests, we need to make sure we don't create multiple instances of the log objects. The caching takes care of that problem.
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 10 Apr 2015 23:12:33 -0700
parents 56c64c91b429
children 6474b64045fb
line wrap: on
line source

gethgversion() {
    make clean
    make local || make local PURE=--pure
    HG="$PWD/hg"

    $HG version > /dev/null || { echo 'abort: hg version failed!'; exit 1 ; }

    hgversion=`$HG version | sed -ne 's/.*(version \(.*\))$/\1/p'`

    if echo $hgversion | grep -- '-' > /dev/null 2>&1; then
        # nightly build case, version is like 1.3.1+250-20b91f91f9ca
        version=`echo $hgversion | cut -d- -f1`
        release=`echo $hgversion | cut -d- -f2 | sed -e 's/+.*//'`
    else
        # official tag, version is like 1.3.1
        version=`echo $hgversion | sed -e 's/+.*//'`
        release='0'
    fi
}