chiark / gitweb /
put die() messages to stderr
[topgit.git] / tg-push.sh
index 8e1b43fdea767f1c2a3e1b90ebfc2ed4343bdbbe..199d7389b48ea4563ac2217022f410b2aebf4d4b 100644 (file)
@@ -53,6 +53,10 @@ push_branch()
        # if so desired omit non tgish deps
        $tgish_deps_only && [ -z "$_dep_is_tgish" ] && return 0
 
+       # filter out plain SHA1s.  These don't need to be pushed explicitly as
+       # the patches that depend on the sha1 have it already in their ancestry.
+       is_sha1 "$_dep" && return 0
+
        echo "$_dep" >> "$_listfile"
        [ -z "$_dep_is_tgish" ] ||
                echo "top-bases/$_dep" >> "$_listfile"
@@ -67,8 +71,8 @@ for name in $branches; do
                _dep_is_tgish=
        push_branch "$name"
 
-       # deps
-       $recurse_deps &&
+       # deps but only if branch is tgish
+       $recurse_deps && [ -n "$_dep_is_tgish" ] &&
                no_remotes=1 recurse_deps push_branch "$name"
 
        # remove multiple occurrences of the same branch