hgeditor
author Adrian Buehlmann <adrian@cadifra.com>
Tue, 16 Mar 2010 17:39:12 +0100
branchstable
changeset 10709 67cb29dbb66e
parent 4687 b5bbfa18daf7
child 11190 43337076ba92
permissions -rwxr-xr-x
contrib/wix: fix product name to include version Without this, Mercurial is registered under the installed programs on Windows as just 'Mercurial', which is unusual for a program to do on Windows. Including the version in the registered product name registers the software in the Windows control panel of installed programs as, for example, 'Mercurial 1.5' (for 1.5), or as 'Mercurial 1.5.1032' for a stable 1.5+32-35893dcfd40c 'Mercurial 1.5.5080' for a unstable 1.5+80-1ee60e82333c when using http://bitbucket.org/tortoisehg/thg-winbuild to create daily builds. Furthermore, the install UI texts in the built installer database (MSI file) are more clear on what the user is about to install, as, for example, the text in the initial installer dialog now reads "The Setup Wizard will install Mercurial 1.5 on your computer" instead of just "The Setup Wizard will install Mercurial on your computer"

#!/bin/sh
#
# This is an example of using HGEDITOR to create of diff to review the
# changes while commiting.

# If you want to pass your favourite editor some other parameters
# only for Mercurial, modify this:
case "${EDITOR}" in
    "")
        EDITOR="vi"
        ;;
    emacs)
        EDITOR="$EDITOR -nw"
        ;;
    gvim|vim)
        EDITOR="$EDITOR -f -o"
        ;;
esac


HGTMP=""
cleanup_exit() {
    rm -rf "$HGTMP"
}

# Remove temporary files even if we get interrupted
trap "cleanup_exit" 0 # normal exit
trap "exit 255" 1 2 3 6 15 # HUP INT QUIT ABRT TERM

HGTMP="${TMPDIR-/tmp}/hgeditor.$RANDOM.$RANDOM.$RANDOM.$$"
(umask 077 && mkdir "$HGTMP") || {
    echo "Could not create temporary directory! Exiting." 1>&2
    exit 1
}

(
    grep '^HG: changed' "$1" | cut -b 13- | while read changed; do
        "$HG" diff "$changed" >> "$HGTMP/diff"
    done
)

cat "$1" > "$HGTMP/msg"

MD5=$(which md5sum 2>/dev/null) || \
    MD5=$(which md5 2>/dev/null)
[ -x "${MD5}" ] && CHECKSUM=`${MD5} "$HGTMP/msg"`
if [ -s "$HGTMP/diff" ]; then
    $EDITOR "$HGTMP/msg" "$HGTMP/diff" || exit $?
else
    $EDITOR "$HGTMP/msg" || exit $?
fi
[ -x "${MD5}" ] && (echo "$CHECKSUM" | ${MD5} -c >/dev/null 2>&1 && exit 13)

mv "$HGTMP/msg" "$1"

exit $?