From: James Roper <jro...@vz.net>

Allow the --force option to be passed to the child push command.

Signed-off-by: Paul Campbell <pcampb...@kemitix.net>
---
 contrib/subtree/git-subtree.sh  | 9 ++++++++-
 contrib/subtree/git-subtree.txt | 5 +++++
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index c68cc6f..2d9b071 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh
@@ -26,6 +26,8 @@ b,branch=     create a new branch from the split subtree
 ignore-joins  ignore prior --rejoin commits
 onto=         try connecting new tree to an existing one
 rejoin        merge the new branch back into HEAD
+ options for 'push'
+f,force       use force push
  options for 'add', 'merge', 'pull' and 'push'
 squash        merge subtree changes as a single commit
 "
@@ -84,6 +86,7 @@ while [ $# -gt 0 ]; do
                -b) branch="$1"; shift ;;
                -P) prefix="$1"; shift ;;
                -m) message="$1"; shift ;;
+               -f|--force) force=1 ;;
                --no-prefix) prefix= ;;
                --onto) onto="$1"; shift ;;
                --no-onto) onto= ;;
@@ -712,12 +715,16 @@ cmd_push()
            die "You must provide <repository> <refspec>"
        fi
        if [ -e "$dir" ]; then
+           push_opts=
+           if [ "$force" == "1" ]; then
+               push_opts="$push_opts --force"
+           fi
            repository=$1
            refspec=$2
            echo "git push using: " $repository $refspec
            rev=$(git subtree split --prefix=$prefix)
            if [ -n "$rev" ]; then
-               git push $repository $rev:refs/heads/$refspec
+               git push $push_opts $repository $rev:refs/heads/$refspec
            else
                die "Couldn't push, 'git subtree split' failed."
            fi
diff --git a/contrib/subtree/git-subtree.txt b/contrib/subtree/git-subtree.txt
index 7ba853e..97dd3c9 100644
--- a/contrib/subtree/git-subtree.txt
+++ b/contrib/subtree/git-subtree.txt
@@ -255,6 +255,11 @@ OPTIONS FOR split
        '--rejoin' when you split, because you don't want the
        subproject's history to be part of your project anyway.
 
+OPTIONS FOR push
+----------------
+-f::
+--force::
+    Uses 'git push --force'.
 
 EXAMPLE 1. Add command
 ----------------------
-- 
1.8.2

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to