12345678910111213141516171819202122232425262728293031 |
- #!/usr/bin/env bash
- set -euo pipefail
- : "${REF:="$(git rev-parse --symbolic-full-name HEAD)"}"
- if [[ "$REF" != refs/heads/* ]]; then
- echo "$REF is not a branch" >&2
- exit 1
- elif [[ "$REF" == refs/heads/patches ]]; then
- REF=refs/heads/master
- fi
- set -x
- input="${REF#refs/heads/}"
- upstream="${input#patched/}"
- branch="patched/$upstream"
- git checkout "$branch" 2>/dev/null || git checkout -b "$branch" origin/patches --no-track
- git fetch 'https://github.com/OpenZeppelin/openzeppelin-contracts.git' master
- merge_base="$(git merge-base origin/patches FETCH_HEAD)"
- git fetch 'https://github.com/OpenZeppelin/openzeppelin-contracts.git' "$upstream"
- # Check that patches is not ahead of the upstream branch we're merging.
- if ! git merge-base --is-ancestor "$merge_base" FETCH_HEAD; then
- echo "The patches branch is ahead of $upstream" >&2
- exit 1
- fi
- git merge origin/patches FETCH_HEAD -m "Merge upstream $upstream into $branch"
|