{"thread":{"id":"33137","subject":"[PATCH 18/19] Added --force option to push","startedAt":"2013-03-09T19:30:37Z","lastAt":"2013-03-09T19:30:37Z","messageCount":1,"participants":["Paul Campbell"],"isPatch":true,"patchVersion":1,"patchTotal":19},"messages":[{"id":"210926","messageId":"CALeLG_=Pr5_OWCc+EJ7g33O-neka7HAgwa58w-TAm3WQwJjrTQ@mail.gmail.com","threadId":"33137","inReplyTo":null,"subject":"[PATCH 18/19] Added --force option to push","fromName":"Paul Campbell","fromEmail":"pcampbell@kemitix.net","sentAt":"2013-03-09T19:30:37Z","receivedAt":"2013-03-09T19:30:37Z","isPatch":true,"sender":{"key":"pcampbell@kemitix.net","avatar":"https://gravatar.com/avatar/57584e05501b694929004e43fcd7308f4ad64df2eb0474cd8c7e5f93662bb0f1?d=mp&s=160"},"body":">From ae7c05bdc6d02fa89deabb59cec6150308f227f7 Mon Sep 17 00:00:00 2001\nFrom: Paul Campbell <pcampbell@kemitix.net>\nDate: Sat, 9 Mar 2013 18:35:42 +0000\nSubject: [PATCH 18/19] Added --force option to push\n\nConflicts:\n\tcontrib/subtree/git-subtree.sh\n\nOriginal-Author: James Roper <jroper@vz.net>\nConflicts-resolved-by: Paul Campbell <pcampbell@kemitix.net>\n---\n contrib/subtree/git-subtree.sh  | 9 ++++++++-\n contrib/subtree/git-subtree.txt | 5 +++++\n 2 files changed, 13 insertions(+), 1 deletion(-)\n\ndiff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh\nindex 4605203..3582a55 100755\n--- a/contrib/subtree/git-subtree.sh\n+++ b/contrib/subtree/git-subtree.sh\n@@ -32,6 +32,8 @@ b,branch=     create a new branch from the split subtree\n ignore-joins  ignore prior --rejoin commits\n onto=         try connecting new tree to an existing one\n rejoin        merge the new branch back into HEAD\n+ options for 'push'\n+f,force       use force push\n  options for 'add', 'merge', 'pull' and 'push'\n squash        merge subtree changes as a single commit\n \"\n@@ -90,6 +92,7 @@ while [ $# -gt 0 ]; do\n \t\t-b) branch=\"$1\"; shift ;;\n \t\t-P) prefix=\"$1\"; shift ;;\n \t\t-m) message=\"$1\"; shift ;;\n+        -f|--force) force=1 ;;\n \t\t--no-prefix) prefix= ;;\n \t\t--onto) onto=\"$1\"; shift ;;\n \t\t--no-onto) onto= ;;\n@@ -790,10 +793,14 @@ cmd_push()\n \t      repository=$(git config -f .gittrees subtree.$prefix.url)\n         refspec=$(git config -f .gittrees subtree.$prefix.branch)\n       fi\n+        push_opts=\n+        if [ \"$force\" == \"1\" ]; then\n+            push_opts=\"$push_opts --force\"\n+        fi\n \t    echo \"git push using: \" $repository $refspec\n \t    rev=$(git subtree split --prefix=$prefix)\n \t    if [ -n \"$rev\" ]; then\n-\t        git push $repository $rev:refs/heads/$refspec\n+\t        git push $push_opts $repository $rev:refs/heads/$refspec\n \t    else\n \t        die \"Couldn't push, 'git subtree split' failed.\"\n \t    fi\ndiff --git a/contrib/subtree/git-subtree.txt b/contrib/subtree/git-subtree.txt\nindex 385bde8..9e9eb9e 100644\n--- a/contrib/subtree/git-subtree.txt\n+++ b/contrib/subtree/git-subtree.txt\n@@ -278,6 +278,11 @@ OPTIONS FOR split\n \t'--rejoin' when you split, because you don't want the\n \tsubproject's history to be part of your project anyway.\n\n+OPTIONS FOR push\n+----------------\n+-f::\n+--force::\n+    Uses 'git push --force'.\n\n EXAMPLE 1. Add command\n ----------------------\n-- \n1.8.2.rc1\n\n\n-- \nPaul [W] Campbell\n"}]}