makepkg: hg: update existing sources in srcdir without removing them first.

The local changes are discarded when updating. This matches the behaviour
when non-VCS sources are used. It also allows incremental builds.

Signed-off-by: Lukáš Jirkovský <l.jirkovsky@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Lukáš Jirkovský 2013-12-09 21:31:22 +01:00 committed by Allan McRae
parent f66ae5334e
commit be3ce88bb2
1 changed files with 10 additions and 4 deletions

View File

@ -671,13 +671,12 @@ extract_hg() {
msg2 "$(gettext "Creating working copy of %s %s repo...")" "${repo}" "hg"
pushd "$srcdir" &>/dev/null
rm -rf "${dir##*/}"
local ref
local ref=tip
if [[ -n $fragment ]]; then
case ${fragment%%=*} in
branch|revision|tag)
ref=('-u' "${fragment##*=}")
ref="${fragment##*=}"
;;
*)
error "$(gettext "Unrecognized reference: %s")" "${fragment}"
@ -686,7 +685,14 @@ extract_hg() {
esac
fi
if ! hg clone "${ref[@]}" "$dir" "${dir##*/}"; then
if [[ -d "${dir##*/}" ]]; then
cd_safe "${dir##*/}"
if ! (hg pull && hg update -C -r "$ref"); then
error "$(gettext "Failure while updating working copy of %s %s repo")" "${repo}" "hg"
plain "$(gettext "Aborting...")"
exit 1
fi
elif ! hg clone -u "$ref" "$dir" "${dir##*/}"; then
error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "hg"
plain "$(gettext "Aborting...")"
exit 1