GitHub source control is the best way to transfer code between your PC and the game server. In this tutorial, we’ll discuss how to use GitHub and take your code workflow to the next level.
Table of Contents
You can view the Using GitHub screencast for a full walkthrough of how to use GitHub to help you when editing Ares code. This article describes some additional details.
The transcript is available here.
Here is a basic summary of the workflow:
You can find the GitHub Desktop installer mentioned in the tutorial here.
The first step in using GitHub for your own game code is to create your own semi-independent version of Ares, called a ‘fork’ in GitHub lingo.
Click the “Fork” button (near the top right).
You are now the proud owner of your own version of AresMUSH. You can tell that you’re on your version by looking at the repository name near the upper left. The main Ares code is aresmush/aresmush. Yours will be something like YOURUSERNAME/aresmush.
GitHub will pull from the main ares repo when you set the game up. To use your own fork, you’ll need to re-point the GitHub “origin” to your forked repository instead of the main one.
In the server shell:
git remote set-url origin <Your Clone URL>
git pull
.Now your game will be set up to get code updates from your fork instead of from the main Ares repository.
Ideally code changes go from your PC/test environment to GitHub and then to the game.
However, there are times when you make changes on the server itself. Perhaps you:
Whatever the reason, if you make changes on the game server directly, you’ll want to get those changes into your fork.
git status
to ensure that all your custom changes are committed. If they aren’t, commit them.git push
and enter your GitHub username and the personal access token for the password.You can actually execute selected git
commands from within the game without needing to connect to the server shell. See help git
in-game. This is handy if you’re using GitHub to sync changes between a local PC and the server because you can push to GitHub from your PC and pull the code down from inside the game itself.
While you’re changing your own copy of the code, there’s also work going on in the main Ares repository. Whenever a new AresMUSH version is announced, you should update your fork.
How you update your fork will vary depending on what tool you’re using, and you can find many GitHub tutorials online. The Using GitHub video tutorial gives an example walkthrough using GitHub Desktop. Here is a quick reference:
upstream/master
.There may be merge conflicts if both you and the Ares devs changed the same bits of code differently. See Upgrades - Resolving Conflicts for more information, and ask for help if you get stuck.
By default, the AresMUSH repository does not contain configuration files. This prevents conflicts between the default configuration and your game’s configuration when you’re doing updates.
You can add your config files to source control, but there are a few caveats:
If you still want to add your config files to source control, here’s how.
Modify the .gitignore file in your Ares fork. Remove the final line that excludes the entire game directory:
# Game directory
# -----------------------------
/game/
Whenever you make changes to your game config, you’ll have to use the git shell commands on the game server to push your config changes to GitHub. See Advanced GitHub.
There are a plethora of good tutorials on the internet about using GitHub, including Try Git and Learn Enough Git To Be Dangerous. There’s also detailed guides on GitHub’s own website, and the first couple chapters of the Pro Git ebook (later chapters go into gory details you won’t need).