mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
[MANUAL MIRROR] Use portable Python for map merge hooks, other tools / Add .dmm merge driver (#2681)
* Use portable Python for map merge hooks, other tools (#55658) * Add .dmm merge driver (#55699) This is kind of a prototype. It only fully handles a few situations, and doesn't produce particularly easy-to-read conflict markers when it fails. I hope that it can be useful at least some of the time, can be improved over time, and that the lessons learned can influence a future interactive GUI conflict resolver (integrated into StrongDMM?). In the worst case, one can fall back to the tried and true "manually re-do one side's changes" strategy. **Automatic use**: In `tools/hooks/`, run `Install.bat` **Manual use**, for Git GUIs that don't run merge drivers: while a merge is in progress, in `tools/mapmerge2/`, double-click `Resolve Map Conflicts.bat` This PR also removes the error-prone "Prepare Maps.bat" / "mapmerge.bat" workflow. Those who aren't using the hooks should instead use `Run Before Committing.bat` before committing. First-time contributors who opened a PR without map merging can be advised to run `I Forgot To Map Merge.bat`. * Fix loose double-quot in tradership_faction.dmm Co-authored-by: Tad Hardesty <tad@platymuus.com>
This commit is contained in:
co-authored by
Tad Hardesty
parent
30a166c52b
commit
bea83b2999
+12
-27
@@ -1,32 +1,17 @@
|
||||
#!/bin/sh
|
||||
# `sh` must be used here instead of `bash` to support GitHub Desktop.
|
||||
set -e
|
||||
|
||||
# Strip the "App Execution Aliases" from $PATH. Even if the user installed
|
||||
# Python using the Windows Store on purpose, these aliases always generate
|
||||
# "Permission denied" errors when sh.exe tries to invoke them.
|
||||
PATH=$(echo "$PATH" | tr ":" "\n" | grep -v "AppData/Local/Microsoft/WindowsApps" | tr "\n" ":")
|
||||
|
||||
# Try to find a Python executable.
|
||||
if command -v python3 >/dev/null 2>&1; then
|
||||
PY=python3
|
||||
elif command -v python >/dev/null 2>&1; then
|
||||
PY=python
|
||||
elif command -v py >/dev/null 2>&1; then
|
||||
PY="py -3"
|
||||
if [ "$*" = "-m precommit" ]; then
|
||||
echo "Hooks are being updated..."
|
||||
echo "Details: https://github.com/tgstation/tgstation/pull/55658"
|
||||
if [ "$(uname -o)" = "Msys" ]; then
|
||||
tools/hooks/Install.bat
|
||||
else
|
||||
tools/hooks/install.sh
|
||||
fi
|
||||
echo "---------------"
|
||||
exec tools/hooks/pre-commit.hook
|
||||
else
|
||||
echo "Please install Python from https://www.python.org/downloads/"
|
||||
echo "tools/hooks/python.sh is replaced by tools/bootstrap/python"
|
||||
echo "Details: https://github.com/tgstation/tgstation/pull/55658"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Deduce the path separator and add the mapmerge package to the search path.
|
||||
PATHSEP=$($PY - <<'EOF'
|
||||
import sys, os
|
||||
if sys.version_info.major != 3 or sys.version_info.minor < 6:
|
||||
sys.stderr.write("Python 3.6 or later is required, but you have:\n" + sys.version + "\n")
|
||||
exit(1)
|
||||
print(os.pathsep)
|
||||
EOF
|
||||
)
|
||||
export PYTHONPATH=tools/mapmerge2/${PATHSEP}${PYTHONPATH}
|
||||
exec $PY "$@"
|
||||
|
||||
Reference in New Issue
Block a user