aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/documentation
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/documentation')
-rw-r--r--experimental/documentation/gerrit.md14
1 files changed, 14 insertions, 0 deletions
diff --git a/experimental/documentation/gerrit.md b/experimental/documentation/gerrit.md
index e3aa775b49..7767c8c358 100644
--- a/experimental/documentation/gerrit.md
+++ b/experimental/documentation/gerrit.md
@@ -122,4 +122,18 @@ These shell scripts can be turned into Git aliases with a little hack:
git config alias.gerrit-push-message '!f(){ git push origin @:refs/for/master%m=$(echo $*|sed "s/[^A-Za-z0-9]/_/g");};f'
+If your branch's upstream branch (set with `git branch --set-upstream-to=...`)
+is set, you can use that to automatically push to that branch:
+
+ gerrit_push_upstream() {
+ local UPSTREAM="$(git rev-parse --abbrev-ref --symbolic-full-name @{u})"
+ local REMOTE="${UPSTREAM%%/*}"
+ local REMOTE_BRANCH="${UPSTREAM#*/}"
+ local MESSAGE="$(echo $*|sed 's/[^A-Za-z0-9]/_/g')"
+ git push "$REMOTE" "@:refs/for/${REMOTE_BRANCH}%m=${MESSAGE}"
+ }
+
+As a Git alias:
+
+ git config alias.gerrit-push-upstream '!f()(U="$(git rev-parse --abbrev-ref --symbolic-full-name @{u})";R="${U%%/*}";B="${U#*/}";M="$(echo $*|sed 's/[^A-Za-z0-9]/_/g')";git push "$R" "@:refs/for/${B}%m=$M");f'