aboutsummaryrefslogtreecommitdiff
path: root/contrib/subtree
diff options
context:
space:
mode:
authorJohn Keeping <john@keeping.me.uk>2013-05-01 09:25:52 +0100
committerJunio C Hamano <gitster@pobox.com>2013-05-01 10:13:32 -0700
commit3212d56ce528a86170f7809659f80a8769a5875f (patch)
tree31f08871861c45c7510d8bcbd001934fe0cfcb2f /contrib/subtree
parent8301b976ed461b5ab3b79a1ce0da1c13728e8149 (diff)
downloadgit-3212d56ce528a86170f7809659f80a8769a5875f.tar.gz
git-3212d56ce528a86170f7809659f80a8769a5875f.tar.xz
contrib/subtree: don't delete remote branches if split fails
When using "git subtree push" to split out a subtree and push it to a remote repository, we do not detect if the split command fails which causes the LHS of the refspec to be empty, deleting the remote branch. Fix this by pulling the result of the split command into a variable so that we can die if the command fails. Reported-by: Steffen Jaeckel <steffen.jaeckel@stzedn.de> Signed-off-by: John Keeping <john@keeping.me.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib/subtree')
-rwxr-xr-xcontrib/subtree/git-subtree.sh3
1 files changed, 2 insertions, 1 deletions
diff --git a/contrib/subtree/git-subtree.sh b/contrib/subtree/git-subtree.sh
index 8a23f58ba..10daa8b0e 100755
--- a/contrib/subtree/git-subtree.sh
+++ b/contrib/subtree/git-subtree.sh
@@ -715,7 +715,8 @@ cmd_push()
repository=$1
refspec=$2
echo "git push using: " $repository $refspec
- git push $repository $(git subtree split --prefix=$prefix):refs/heads/$refspec
+ localrev=$(git subtree split --prefix="$prefix") || die
+ git push $repository $localrev:refs/heads/$refspec
else
die "'$dir' must already exist. Try 'git subtree add'."
fi