summaryrefslogtreecommitdiff
path: root/db-functions-svn
diff options
context:
space:
mode:
Diffstat (limited to 'db-functions-svn')
-rw-r--r--db-functions-svn14
1 files changed, 10 insertions, 4 deletions
diff --git a/db-functions-svn b/db-functions-svn
index 9151b44..4d6717d 100644
--- a/db-functions-svn
+++ b/db-functions-svn
@@ -113,21 +113,27 @@ vcs_move_finish() {
arch_svn commit -q "${WORKDIR}/svn/${pkgbase}" -m "${0##*/}: moved ${pkgbase} from [${repo_from}] to [${repo_to}] (${tag_list})"
}
-# usage: vcs_remove repo pkgarch pkgbase
+# usage: vcs_remove repo tarch pkgbase
#
# Remove the given package in VCS.
vcs_remove() {
local repo=$1
- local arch=$2
+ local tarch=$2
local pkgbase=$3
local svnrepo="$repo-$arch"
_svn_checkout "$pkgbase"
- if [[ -d ${WORKDIR}/svn/$pkgbase/repos/$svnrepo ]]; then
+ if [[ -d ${WORKDIR}/svn/$pkgbase/repos/$repo-$tarch ]]; then
+ pkgarch=$tarch
+ elif [[ -d ${WORKDIR}/svn/$pkgbase/repos/$repo-any ]]; then
+ pkgarch=any
+ fi
+ if [[ -d ${WORKDIR}/svn/$pkgbase/repos/$repo-$pkgarch ]]; then
arch_svn rm --force -q "${WORKDIR}/svn/$pkgbase/repos/$svnrepo"
arch_svn commit -q "${WORKDIR}/svn/$pkgbase" -m "${0##*/}: $pkgbase removed by $(id -un)"
- else
+ svn_removed+=("$repo-$pkgarch/$pkgbase")
+ elif ! in_array "$repo-$pkgarch/$pkgbase" "${svn_removed[@]}"; then
warning "pkgbase '%s' not found in svn; unable to commit removal to svn" "$pkgbase"
fi
}