diff options
Diffstat (limited to 'db-functions-svn')
-rw-r--r-- | db-functions-svn | 14 |
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 } |