mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-10 17:52:36 +00:00
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`.
40 lines
917 B
Python
40 lines
917 B
Python
import os
|
|
import sys
|
|
from .dmm import *
|
|
|
|
|
|
def _self_test():
|
|
# test: can we load every DMM in the tree
|
|
count = 0
|
|
for dirpath, dirnames, filenames in os.walk('.'):
|
|
if '.git' in dirnames:
|
|
dirnames.remove('.git')
|
|
for filename in filenames:
|
|
if filename.endswith('.dmm'):
|
|
fullpath = os.path.join(dirpath, filename)
|
|
try:
|
|
DMM.from_file(fullpath)
|
|
except Exception:
|
|
print('Failed on:', fullpath)
|
|
raise
|
|
count += 1
|
|
|
|
print(f"{os.path.relpath(__file__)}: successfully parsed {count} .dmm files")
|
|
|
|
|
|
def _usage():
|
|
print(f"Usage:")
|
|
print(f" tools{os.sep}bootstrap{os.sep}python -m {__spec__.name}")
|
|
exit(1)
|
|
|
|
|
|
def _main():
|
|
if len(sys.argv) == 1:
|
|
return _self_test()
|
|
|
|
return _usage()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
_main()
|