mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor
synced 2024-09-23 10:19:35 +00:00
Add updateSubmodule.sh script
Generates a commit that updates the VE core submodule to master (or a specified version) Change-Id: I54c5fa18e9f9d7bb65a490415c5c139fd6072925
This commit is contained in:
parent
84433d6deb
commit
74242c790a
68
bin/updateSubmodule.sh
Executable file
68
bin/updateSubmodule.sh
Executable file
|
@ -0,0 +1,68 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# This script generates a commit that updates the lib/ve submodule
|
||||
# ./bin/updateSubmodule.sh updates to master
|
||||
# ./bin/updateSubmodule.sh hash updates to specified hash
|
||||
|
||||
# cd to the VisualEditor directory
|
||||
cd $(cd $(dirname $0)/..; pwd)
|
||||
|
||||
# Check that both working directories are clean
|
||||
if git status -uno --ignore-submodules | grep -i changes > /dev/null
|
||||
then
|
||||
echo >&2 "Working directory must be clean"
|
||||
exit 1
|
||||
fi
|
||||
cd lib/ve
|
||||
if git status -uno --ignore-submodules | grep -i changes > /dev/null
|
||||
then
|
||||
echo >&2 "lib/ve working directory must be clean"
|
||||
exit 1
|
||||
fi
|
||||
cd ../..
|
||||
|
||||
git fetch origin
|
||||
# Create sync-repos branch if needed and reset it to master
|
||||
git checkout -B sync-repos origin/master
|
||||
git submodule update
|
||||
cd lib/ve
|
||||
git fetch origin
|
||||
|
||||
# Figure out what to set the submodule to
|
||||
if [ "x$1" != "x" ]
|
||||
then
|
||||
TARGET="$1"
|
||||
TARGETDESC="$1"
|
||||
else
|
||||
TARGET=origin/master
|
||||
TARGETDESC="master ($(git rev-parse --short origin/master))"
|
||||
fi
|
||||
|
||||
# Generate commit summary
|
||||
# TODO recurse
|
||||
NEWCHANGES=$(git log ..$TARGET --oneline --no-merges --reverse --color=never)
|
||||
NEWCHANGESDISPLAY=$(git log ..$TARGET --oneline --no-merges --reverse --color=always)
|
||||
COMMITMSG=$(cat <<END
|
||||
Update VE core submodule to $TARGETDESC
|
||||
|
||||
New changes:
|
||||
$NEWCHANGES
|
||||
END
|
||||
)
|
||||
# Check out master of VE core
|
||||
git checkout $TARGET
|
||||
|
||||
# Commit
|
||||
cd ../..
|
||||
git commit lib/ve -m "$COMMITMSG" > /dev/null
|
||||
if [ "$?" == "1" ]
|
||||
then
|
||||
echo >&2 "No changes"
|
||||
else
|
||||
cat >&2 <<END
|
||||
|
||||
|
||||
Created commit with changes:
|
||||
$NEWCHANGESDISPLAY
|
||||
END
|
||||
fi
|
Loading…
Reference in a new issue