diff options
author | Daniel M. Capella <polyzen@archlinux.org> | 2022-06-04 21:32:51 +0000 |
---|---|---|
committer | Daniel M. Capella <polyzen@archlinux.org> | 2022-06-04 21:32:51 +0000 |
commit | 262b4db195d5b65c71b24ba48780c133580c4f2f (patch) | |
tree | 7c806cece5b47aa871eda943179c36693f8bb6de | |
parent | f4e91e231cf158e4389f8dfc7e76a31f1bd613e4 (diff) | |
parent | bb26f1418d37d15c9758186e12bc0508250303e6 (diff) |
Merge branch 'pacdiff-merge-fixes' into 'master'
Small but important fixes for pacdiff's merge action
See merge request pacman/pacman-contrib!15
-rw-r--r-- | src/pacdiff.sh.in | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/pacdiff.sh.in b/src/pacdiff.sh.in index 43b5e5b..79caefc 100644 --- a/src/pacdiff.sh.in +++ b/src/pacdiff.sh.in @@ -99,7 +99,8 @@ base_cache_tar() { # unlikely that this will fail, but better make sure pushd "$cachedir" &>/dev/null || die "failed to chdir to '%s'" "$cachedir" - find "$PWD" -name "$package-[0-9]*.pkg.tar*" | pacsort --files | sed -ne '2p' + find "$PWD" -name "$package-[0-9]*.pkg.tar*" ! -name '*.sig' | + pacsort --files --reverse | sed -ne '2p' popd &>/dev/null } @@ -121,7 +122,11 @@ merge_file() { base="$(mktemp "$tempdir"/"$basename.base.XXX")" merged="$(mktemp "$tempdir"/"$basename.merged.XXX")" - tar -xOf "$base_tar" "${file#/}" >"$base" + if ! bsdtar -xqOf "$base_tar" "${file#/}" >"$base"; then + msg2 "Unable to extract the previous version of this file." + return 1 + fi + if $mergeprog "$file" "$base" "$pacfile" >"$merged"; then msg2 "Merged without conflicts." fi |