Difference between revisions of "Map Merger"

From NSV13
Jump to navigationJump to search
imported>Jordie0608
imported>SpaceManiac
(Update Python 3.7 information)
 
(15 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Related guide: [[Guide to mapping]]
+
/tg/station uses a tool called the '''Map Merger''' to minimize differences between versions of maps and lay them out in a format known as TGM, developed by Remie. This makes changes easier for maintainers to review and less likely to conflict with changes made by others.
  
Before any change to a map, it is good to use the Map Merger tools. What these do is cut down the number of lines which Dream Maker thinks have changed, since it usually interprets any change to the map as a rewrite of all ~8000 lines.
+
There are two ways of running the tool, each requiring some amount of setup. If you have trouble or need help, ask in [[Community|#coderbus]].
  
The Map Merger tools presently only work for windows as they utilize .bat files.
+
== Basic Setup ==
  
If you have difficulty using these tools, ask for help in [[Community|#coderbus]]
+
# '''Install Python 3.6''': If you don't already have Python installed, [https://www.python.org/downloads/ download and install] version 3.6 or later.
 +
# '''Ensure Python is in your PATH''': For Windows users, ensure that you check the "Add Python 3.6 to PATH" option in the installer. - see [https://file.house/DA6H.png here for example]
 +
# '''Install dependencies''': For Windows users, run <code>tools/mapmerge2/requirements-install.bat</code>. Non-Windows or advanced users can manually run <code>python -m pip install tools/mapmerge2/requirements.txt</code>.
  
== Using the tools ==
+
== Use as a Git Commit Hook (preferred) ==
{|
 
|-
 
|'''1. Install Java'''
 
|If you don't have Java already installed it can be downloaded from: [http://www.java.com/en/download/index.jsp]
 
|-
 
|'''2. PATH Java'''
 
|To test if Java is in your PATH, open Git Bash and type "Java". If it says "unknown command" you will need to add JAVA/bin to your PATH. See here for how: [https://www.java.com/en/download/help/path.xml]
 
|-
 
|'''3. Backup'''
 
|It's not strictly necessary to, but usually a good idea to make a backup of your map at this point.
 
|-
 
|-
 
|'''4. Prepare map'''
 
|Run prepare_Map.bat in the tools/mapmerge/ directory.
 
|-
 
|'''5. Edit your map'''
 
|Make your changes to the map here. Remember to save them!
 
|-
 
|'''6. Clean map'''
 
|Run clean_Map.bat in the tools/mapmerge/ directory. Don't worry if it says there are ~8000 differences, just ignore that for now.
 
|-
 
|'''7. Check differences'''
 
|Use your application of choice to look at the differences between revisions of your code. If it's reading ~8000 line differences then you've done something wrong, go back and try again.
 
|-
 
|'''8. Commit'''
 
|Your map is now ready to be committed, rejoice.
 
|}
 
  
== Editing different maps ==
+
This method requires slightly more setup, and requires you to be using git rather than just downloading the source, but requires no manual intervention after setup. For this reason, it is the recommended method.
The Map Merger tools are configured for the main map, presently tgstation 2.1.3, and will not work if you're trying to edit a different map. To fix this, open both prepare_map.bat and clean_map.bat and change "set MAPFILE=tgstation.2.1.3.dmm" to the map which you're trying to edit. For instance, if you want to use the Map Merger tools for a map called "MyFirstMap.2", you would change it to "set MAPFILE=MyFirstMap.2".
 
  
[[Category:Guides]] [[Category:Game Resources]]
+
# '''Install the hook''': Windows users run <code>tools/hooks/install.bat</code>. Other platforms run <code>tools/hooks/install.sh</code>.
{{Contribution guides}}
+
 
 +
Now, any time you create a commit, the map merger runs automatically and bases your changes on top of the previous version of the map stored in git. The dialog box or console output of the commit will show the map merger's log. You can check the git commit log to review changes, or run <code>tools/mapmerge2/precommit.py</code> manually to review changes before comitting.
 +
 
 +
== Manual Use ==
 +
 
 +
This is the older method, and is simpler but requires careful manual use each time you want to make changes to the map. Each time you want to edit a map, follow these steps:
 +
 
 +
# '''Prepare maps''': Run <code>tools/mapmerge2/Prepare Maps.bat</code> to save a backup of all maps in their current state.
 +
# '''Make your changes''': Don't forget to save.
 +
# '''Exit DreamMaker''': Optional, but ensures that you don't accidentally undo the map merger's work.
 +
# '''Run the map merger''': Run <code>tools/mapmerge2/mapmerge.bat</code> and select the map you edited to merge.
 +
 
 +
== Gotchas ==
 +
 
 +
Leaving the map open in DreamMaker or reviewing it after running the map merger makes it possible to accidentally save and overwrite the merged map with an unmerged map. Close DreamMaker entirely before running the map merger or be extra-careful not to overwrite the changes the map merger made.

Latest revision as of 02:07, 19 January 2019

/tg/station uses a tool called the Map Merger to minimize differences between versions of maps and lay them out in a format known as TGM, developed by Remie. This makes changes easier for maintainers to review and less likely to conflict with changes made by others.

There are two ways of running the tool, each requiring some amount of setup. If you have trouble or need help, ask in #coderbus.

Basic Setup[edit | edit source]

  1. Install Python 3.6: If you don't already have Python installed, download and install version 3.6 or later.
  2. Ensure Python is in your PATH: For Windows users, ensure that you check the "Add Python 3.6 to PATH" option in the installer. - see here for example
  3. Install dependencies: For Windows users, run tools/mapmerge2/requirements-install.bat. Non-Windows or advanced users can manually run python -m pip install tools/mapmerge2/requirements.txt.

Use as a Git Commit Hook (preferred)[edit | edit source]

This method requires slightly more setup, and requires you to be using git rather than just downloading the source, but requires no manual intervention after setup. For this reason, it is the recommended method.

  1. Install the hook: Windows users run tools/hooks/install.bat. Other platforms run tools/hooks/install.sh.

Now, any time you create a commit, the map merger runs automatically and bases your changes on top of the previous version of the map stored in git. The dialog box or console output of the commit will show the map merger's log. You can check the git commit log to review changes, or run tools/mapmerge2/precommit.py manually to review changes before comitting.

Manual Use[edit | edit source]

This is the older method, and is simpler but requires careful manual use each time you want to make changes to the map. Each time you want to edit a map, follow these steps:

  1. Prepare maps: Run tools/mapmerge2/Prepare Maps.bat to save a backup of all maps in their current state.
  2. Make your changes: Don't forget to save.
  3. Exit DreamMaker: Optional, but ensures that you don't accidentally undo the map merger's work.
  4. Run the map merger: Run tools/mapmerge2/mapmerge.bat and select the map you edited to merge.

Gotchas[edit | edit source]

Leaving the map open in DreamMaker or reviewing it after running the map merger makes it possible to accidentally save and overwrite the merged map with an unmerged map. Close DreamMaker entirely before running the map merger or be extra-careful not to overwrite the changes the map merger made.