Skip to content

Get PennMUSH from GIT

ArielSchnee edited this page Sep 3, 2021 · 4 revisions

Introduction

There are many changes in the GIT branch at the time this writing that are yet to be released. Many of them are highly desired: Speed improvements, bugfixes, new features. This document is aimed at helping people migrate from using release tarballs and patch files to using git to keep their version of PennMUSH updated.

Why use GIT?

GIT is the version control system used by the PennMUSH developers for tracking changes when they update Penn. GIT provides many features useful for both developers and for non-dev users:

  • It will keep your changes across updates, and it does a better of a job at it than just diff and patch do.

  • It lets you quickly and easily backtrack to an older version of PennMUSH in case you come across a recently introduced bug that you can't wait to get fixed.

  • Updating your mush is now simply "git pull; make all install" instead of downloading a patch, patching it in, then "make all install".

  • Sure, you get our "bleeding edge" changes, but we try our hardest to make them not bleeding - And the turnaround time between telling us about a crashbug or a serious bug to when the fix is in GIT is usually pretty quick.

  • You can get our latest features without having to wait for Raevnos to package up a release and patchfiles!

New Games

Starting a new game using a copy of PennMUSH from GIT is simple:

  1. Check out a copy of PennMUSH: git clone https://github.com/pennmush/pennmush.git pennmush-git
  2. Build and compile the pennmush-git checkout, selecting the options you like: cd pennmush-git ; ./configure ; make update all install
  3. Edit game/mush.cnf to set your desired options
  4. Start the MUSH: game/restart
  5. If you keep getting a "I don't see /home/game/pennmush-git/game/netmush. Did you remember to make install?" error, try the following steps instead.
  6. Check out a copy of PennMUSH: git clone https://github.com/pennmush/pennmush.git pennmush-git
  7. Build and compile the pennmush-git checkout, selecting the options you like: cd pennmush-git ; ./configure --without-mysql ; make update all install
  8. Edit game/mush.cnf to set your desired options
  9. Start the MUSH: game/restart

Existing Games

If you have an existing game, either using a downloaded copy of PennMUSH or running from the now-defunct Google Code SVN Repository, changing to GIT is quite straight-forward:

  1. Start this howto with your shell open to the directory containing your pennmush install. We'll assume your old pennmush directory is named "pennmush"
  2. Back up, just to be safe: cp -r pennmush pennmush.bak
  3. Check out a copy of PennMUSH: git clone https://github.com/pennmush/pennmush.git pennmush-git
  4. Build and compile the pennmush-git checkout, selecting the options you like: cd pennmush-git ; ./configure ; make update all install
  5. @shutdown your currently running mush.
  6. Copy the data, restart, .cnf and any other files you have created or changed over: cp pennmush/game/data/* pennmush-git/game/data/ ; cp pennmush/game/*.cnf pennmush/game/restart pennmush-git/game/
  7. If you have news files or other personalized text files, copy those over. You may want to remove the default files: rm -rf pennmush-git/game/txt/nws ; cp -r pennmush/game/txt/nws pennmush-git/game/txt/nws
  8. You may want to rename "pennmush-git" to the same as the old directory: mv pennmush pennmush-old ; mv pennmush-git pennmush
  9. If you're running from SVN and have hardcode hacks, use cd pennmush-old; svn diff > my-hacks.diff to make a copy, then patch the diff file into the new game.
  10. Start the new game: ./pennmush/game/restart

Updating

Updating to the latest GIT version is a simple process:

  1. cd into your pennmush directory. NOT your src/ or game/ directories, or the update will be incomplete.
  2. Run git pull to fetch the latest changes.
  3. Compile: make all install. On some occassions, make may tell you to re-run ./configure before running make.
  4. Do an @shutdown/reboot! =).

Hacking

If you have any changes, you can keep them up to date with by looking at the HACKING.* files, where we detail hardcode changes we feel may impact people with hardcode changes.