commit f2961643124041fdd8c0eae0c92affbe4a4ae5d8
Author: Kacper Kornet <[email protected]>
Date:   Sat Mar 23 18:32:01 2013 +0000

    purge_packages: Check for changes not merged upstream

 purge-packages.sh | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)
---
diff --git a/purge-packages.sh b/purge-packages.sh
index 2819921..aeced19 100755
--- a/purge-packages.sh
+++ b/purge-packages.sh
@@ -17,6 +17,8 @@ install -d $purgedir
 for pkg in */.git; do
        pkg=${pkg%/.git}
        cd "$pkg"
+       purge='yes'
+
        status=$(git status --porcelain)
        stash=$(git stash list)
 
@@ -24,16 +26,31 @@ for pkg in */.git; do
        if [ -n "$status" ] || [ -n "$stash" ]; then
                cat <<-EOF
                * Package $pkg - Untracked files or stash not empty. Invoke gc
-
                $status
                EOF
+               purge='no'
                git gc
-       else
+       fi
+       git show-ref --heads |\
+       { while read sha1 branch; do
+               short_branch=${branch#refs/heads/}
+               if ! upstream=$(git rev-parse -q --verify $short_branch@{u}) 
2>/dev/null; then
+                       echo "* Package $pkg - Branch $short_branch has not 
defined upstream"
+                       purge='no'
+                       continue
+               fi
+               if [ -n "$(git rev-list "$upstream..$branch")" ]; then
+                       echo "* Package $pkg - Branch $short_branch is not 
fully merged to its upstream"
+                       purge='no'
+                       continue
+               fi
+       done
+       if [ "$purge" = 'yes' ]; then
                cat <<-EOF
                * Package $pkg - State clean. Removing
                EOF
                mv ../$pkg $purgedir
-       fi
+       fi }
        cd ..
 done
 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/rpm-build-tools.git/commitdiff/25e20df548cb8235e0ca882a61b638ee94cbf1ca

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to