]> gitweb.fluxo.info Git - scripts.git/commitdiff
Adding git-subtree-push
authorSilvio Rhatto <rhatto@riseup.net>
Sat, 15 Mar 2014 16:58:57 +0000 (13:58 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Sat, 15 Mar 2014 16:58:57 +0000 (13:58 -0300)
git-subtree-push [new file with mode: 0755]

diff --git a/git-subtree-push b/git-subtree-push
new file mode 100755 (executable)
index 0000000..41ffe25
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/bash
+#
+# Push changes in a subtree to a remote.
+#
+
+# Parameters
+BASENAME="`basename $0`"
+REMOTE="$1"
+FOLDER="$2"
+
+# Syntax
+if [ -z "$2" ]; then
+  echo "usage: $BASENAME <gitremote> <folder>"
+  exit 1
+fi
+
+# Check remote
+if ! git remote | grep -qe "^$REMOTE"; then
+  echo "fatal: no such remote $REMOTE"
+  exit
+fi
+
+# Fetch the remote
+git fetch $REMOTE master
+
+# Process
+if [ ! -d "$FOLDER" ]; then
+  echo "fatal: folder $FOLDER does not exist"
+  exit 1
+else
+  # Update a subtree
+  git subtree push --prefix=$FOLDER $REMOTE master
+fi