From 48177ff85854baaf184ebc1c9d46def6398b64d8 Mon Sep 17 00:00:00 2001 From: Florian Pritz Date: Fri, 31 Jan 2014 19:53:48 +0100 Subject: use global variable to track history changes and commit everything at once Signed-off-by: Florian Pritz --- db-add | 2 +- db-functions | 19 +++++++++++++++---- db-move | 2 +- db-remove | 2 +- db-update | 2 +- 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/db-add b/db-add index 531bbaf..6318a73 100755 --- a/db-add +++ b/db-add @@ -35,7 +35,7 @@ for pkgfile in ${pkgfiles[@]}; do arch_db_add $repo "$pkgfile" ${tarches[@]} done -arch_git commit -q -m "db-add: ${tarches[@]}: ${pkgfiles[@]}" +arch_history_commit "db-add: ${tarches[@]}: ${pkgfiles[@]}" for tarch in ${tarches[@]}; do repo_unlock $repo $tarch diff --git a/db-functions b/db-functions index 4b90d51..4c22bd8 100644 --- a/db-functions +++ b/db-functions @@ -28,6 +28,8 @@ mv_acl() { WORKDIR=$(mktemp -d "${TMPDIR}/${0##*/}.XXXXXXXXXX") LOCKS=() REPO_MODIFIED=0 +declare -a HISTORY_add_files=() +declare -a HISTORY_remove_files=() # check if messages are to be printed using color unset ALL_OFF BOLD BLUE GREEN RED YELLOW @@ -565,7 +567,7 @@ arch_history_add() { mkdir -p "${history_file%/*}" echo "$pkgbase $pkgver" > "$history_file" - arch_git add "$history_file" + HISTORY_add_files=("${HISTORY_add_files[@]}" "$history_file") } arch_history_remove() { @@ -574,12 +576,21 @@ arch_history_remove() { local tarches="$3" local history_file="$GITREPO/$repo/$tarch/$pkgname" - arch_git rm "$history_file" + + [[ -f "$history_file" ]] || return 1 + + HISTORY_remove_files=("${HISTORY_remove_files[@]}" "$history_file") } -arch_git() { +arch_history_commit() { pushd "$GITREPO" - git "$@" + if ((${#HISTORY_add_files[@]} > 0)); then + git add -- "${HISTORY_add_files[@]}" + fi + if ((${#HISTORY_remove_files[@]} > 0)); then + git rm -- "${HISTORY_remove_files[@]}" + fi + git commit -q -m "$1" popd } diff --git a/db-move b/db-move index 8352b94..27c08e1 100755 --- a/db-move +++ b/db-move @@ -35,7 +35,7 @@ for pkg in "${pkgs[@]}"; do arch_db_remove "${repo_from}" "$arch" "$pkgname" done -arch_git commit -q -m "db-move: $add_pkgs[@]" +arch_history_commit "db-move: $add_pkgs[@]" for pkgarch in ${ARCHES[@]}; do repo_unlock ${repo_from} ${pkgarch} diff --git a/db-remove b/db-remove index 8df44a2..f6d2e99 100755 --- a/db-remove +++ b/db-remove @@ -39,7 +39,7 @@ for tarch in ${tarches[@]}; do arch_db_remove "${repo}" "${tarch}" ${remove_pkgs[@]} done -arch_git commit -q -m "db-remove: ${remove_pkgs[@]}" +arch_history_commit "db-remove: ${remove_pkgs[@]}" for tarch in ${tarches[@]}; do repo_unlock $repo $tarch diff --git a/db-update b/db-update index 5e75498..272b575 100755 --- a/db-update +++ b/db-update @@ -70,7 +70,7 @@ for repo in ${repos[@]}; do done done -arch_git commit -q -m "db-update: ${repos[@]}" +arch_history_commit "db-update: ${repos[@]}" for repo in ${repos[@]}; do for pkgarch in ${ARCHES[@]}; do -- cgit v1.2.3-24-g4f1b