[pacman-dev] [PATCH] makepkg: bzr: update existing sources in srcdir without removing them first.
Allan McRae
allan at archlinux.org
Sun Nov 9 09:08:41 UTC 2014
On 01/07/14 19:38, Lukáš Jirkovský wrote:
> The local changes are discarded when updating. This matches the behaviour
> when non-VCS sources are used. It also allows incremental builds.
>
> This changes semantics a bit. Previously using "bzr revno" would obtain
> the revision of the working tree. After this change, it is necessary to use
> "bzr revno --tree" to achieve the same result.
>
> The reasoning behind this change is that "bzr pull" that was previously used
> actually altered the original clone, making it impossible to freely navigate
> through the history when the internet connection wasn't available.
>
> Signed-off-by: Lukáš Jirkovský <l.jirkovsky at gmail.com>
> ---
> scripts/makepkg.sh.in | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 7d3c28b..f0e19ed 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -499,10 +499,11 @@ extract_bzr() {
> unset fragment
> fi
>
> + rev="last:1"
> if [[ -n $fragment ]]; then
> case ${fragment%%=*} in
> revision)
> - revision=("-r" "${fragment#*=}")
> + rev="${fragment#*=}"
> displaylocation="$url -r ${fragment#*=}"
> ;;
> *)
> @@ -517,10 +518,16 @@ extract_bzr() {
>
> msg2 "$(gettext "Creating working copy of %s %s repo...")" "${repo}" "bzr"
> pushd "$srcdir" &>/dev/null
> - rm -rf "${dir##*/}"
>
> - if ! { bzr checkout "$dir" "${revision[@]}" --lightweight &&
> - ( cd "$repo" && bzr pull "$dir" -q --overwrite "${revision[@]}" ); }; then
> + if [[ -d "${dir##*/}" ]]; then
> + cd_safe "${dir##*/}"
> + if ! (bzr update -q -r "$rev" && bzr clean-tree -q --detritus --force); then
> + error "$(gettext "Failure while updating working copy of %s %s repo")" "${repo}" "bzr"
> + plain "$(gettext "Aborting...")"
> + exit 1
> + fi
> + elif ! { bzr checkout "$dir" -r "$rev" --lightweight &&
> + ( cd "$repo" && bzr pull "$dir" -q --overwrite -r "$rev" ); }; then
The "bzr pull" you are concerned about in your text above is still here.
Is this supposed to be "bzr update -q -r "$rev"?
> error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "bzr"
> plain "$(gettext "Aborting...")"
> exit 1
>
More information about the pacman-dev
mailing list