mirror of
https://github.com/urbit/shrub.git
synced 2024-11-23 20:26:54 +03:00
sh: add merge helper script [ci skip]
Often one needs to merge branches in which the LFS-stored solid pill conflicts with what's in master. The conflict has to be resolved manually, but the procedure for doing so is mechanical in practice. This adds a simple script for automating that.
This commit is contained in:
parent
2a1e0971f2
commit
7ca71fb315
72
sh/merge_and_update_solid
Executable file
72
sh/merge_and_update_solid
Executable file
@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
usage() {
|
||||
local error="$1"
|
||||
|
||||
cat >&2 <<EOF
|
||||
Usage:
|
||||
$0 BRANCH PULL_REQUEST
|
||||
|
||||
Synopsis:
|
||||
Useful script for merging a GitHub pull request, resolving any (solid) pill
|
||||
conflicts along the way.
|
||||
|
||||
Strips "origin" from branches.
|
||||
|
||||
Example:
|
||||
$0 origin/philip/jael-fix 1953
|
||||
|
||||
Yields:
|
||||
|
||||
Merge branch 'philip/jael-fix' (#1953)
|
||||
|
||||
* origin/philip/jael-fix:
|
||||
jael: process all ships in %full update
|
||||
|
||||
Signed-off-by: Jared Tobin <jared@tlon.io>
|
||||
|
||||
Error:
|
||||
-> $error
|
||||
EOF
|
||||
|
||||
exit 1
|
||||
}
|
||||
|
||||
args="$@"
|
||||
|
||||
if [[ -z "$args" ]]; then
|
||||
usage "No arguments specified."
|
||||
fi
|
||||
|
||||
REV=$1
|
||||
PR=$2
|
||||
|
||||
TARGET=$(echo $REV | sed s_origin/__)
|
||||
|
||||
MERGE_MSG="Merge branch '$TARGET' (#$PR)"
|
||||
|
||||
PIER="tmp_pill_zod"
|
||||
|
||||
cleanup () {
|
||||
if [ -e ./$PIER/.vere.lock ]
|
||||
then kill $(< ./$PIER/.vere.lock) || true;
|
||||
fi
|
||||
}
|
||||
|
||||
trap cleanup EXIT
|
||||
|
||||
git merge --no-ff --signoff --log -X ours -m "$MERGE_MSG" $REV
|
||||
|
||||
rm -rf $PIER
|
||||
urbit -d -F zod -B bin/solid.pill -A pkg/arvo -c $PIER
|
||||
|
||||
herb $PIER -P solid.pill -d '+solid'
|
||||
|
||||
mv solid.pill bin/solid.pill
|
||||
|
||||
git add bin/solid.pill
|
||||
git commit --amend --no-edit
|
||||
|
||||
cleanup
|
||||
|
||||
rm -rf $PIER
|
Loading…
Reference in New Issue
Block a user