]> Nutra Git (v2) - gamesguru/git-remote-gcrypt.git/commitdiff
Use batch-check to use only the remote_has commits we also have locally
authorroot <root@localhost>
Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)
committerroot <root@localhost>
Thu, 14 Feb 2013 00:00:00 +0000 (00:00 +0000)
git-remote-gcrypt

index be3a4a7865eabe0a3395ac66be63c81cb5437649..909aa25e71f15cfd4cab98abf056e9f6ea1861e7 100755 (executable)
@@ -249,10 +249,8 @@ pack_hash()
 # Pass the branch/ref by pipe to git
 safe_git_rev_parse()
 {
-       local out_=
-       out_=$(xecho "$1" | git cat-file --batch-check)
-       out_=${out_%%*missing}
-       xecho "${out_%% *}"
+       git cat-file --batch-check 2>/dev/null |
+               xgrep -v "missing" | cut -f 1 -d ' '
 }
 
 check_recipients()
@@ -446,8 +444,9 @@ do_push()
        trap 'rm -f "$TmpPack_Encrypted" "$TmpObjlist"' EXIT
        if isnonnull "$Branchlist"
        then
-               remote_has=$(xecho "$Branchlist" |
-                       cut -f 1 -d ' ' | sed -e 's/^\(.\)/^&/')
+               # filter through batch-check to mark only the commits we have
+               remote_has=$(xecho "$Branchlist" | cut -f 1 -d ' ' |
+                       safe_git_rev_parse | sed -e 's/^\(.\)/^&/')
        fi
 
        while read line_ # from <<
@@ -458,7 +457,7 @@ do_push()
                then
                        remote_want=$(append "$remote_want" "$prefix_")
                        Branchlist=$(append "$Branchlist" \
-                               "$(safe_git_rev_parse "$prefix_") $suffix_")
+                       "$(xecho "$prefix_" | safe_git_rev_parse) $suffix_")
                else
                        # Mark branch for deletion
                        Branchlist=$(append "$Branchlist" "$del_hash $suffix_")