Table of Contents
CobraMUSH Darcs Repositories
CobraMUSH source code in development utilizes Darcs for its Revision Control System.
The CobraMUSH repositories where all development takes place are browsable at http://darcs.cobramush.org.
Darcs for CobraMUSH developers
A guide to getting started with Darcs Revision Control System is located here.
How to grab a copy of CobraMUSH
The recommended way to grab your copy of darcs is using the –set-scripts-executable switch, since the CobraMUSH project contains many scripts that need to be set in order for the CobraMUSH distribution to work.
darcs get http://darcs.cobramush.org/darcs/cobramush/<version>/<line>/ cobramush
where <version> is a version number such as 0.72, 0.73, or 0.80 and <line> is development, release, or stable. Optionally, you can change the last “cobramush” to another directory name to create with the code in it. For instance, you can do the following to track multiple lines at the same time:
darcs get http://darcs.cobramush.org/darcs/cobramush/0.72/stable/ 0.72-stable darcs get http://darcs.cobramush.org/darcs/cobramush/0.73/development/ 0.73-development
Then cd into the cobramush directory and run:
sh utils/preparedist.sh
This script requires that you have the 'metaconfig' utility from Perl on your system. It's usually part of a package named 'dist'. It will generate the Configure script and so forth for you.
Keep your repository up to date
Darcs is a simple push/pull system of patches. In order to keep your repoistries upto date a simple darcs pull command is needed to be ran periodically.
cd my_local_cobramush_repoistory darcs pull
This will in turn pull patch by patch asking you if you want to apply them out of all the recorded pushed patches in that particular CobraMUSH repoistory.
Record changes to your checked out repository
To record changes to your checked out CobraMUSH repository. Make your changes as usual using your favorite editor, use darcs add, darcs mv, and other darcs commands to change the files as you may wish. If you want to delete a file, rm it as you would normally in the shell.
When you have reached the point you would like to record all the specific changes to a particular darcs patch, simply type:
darcs record
When the darcs record command initiated, it will go through all the changes made in your checked out repoistory similar to a patchfiles showing hunk by hunk so you may pick which changes in particular you would like to record to the particular darcs patch you are making. When all files are selected darcs will then ask what patchname you would like to assign to this darcs patch, followed by asking you if you would like to assigna long comment. In the CobraMUSH project long comments are encouraged for many patchnames give no clue what the patch is really for and it allows for better tracking of particular CorbaMUSH repoistory changes.
How to send changes to the CobraMUSH Repoistory
Depending on what kinda access you as the developer have. You may or may not have direct push access to the repoistory. If you do, most likely Nveid or Ari would of told you.
Using Darcs Push
The push command darcs is the most commonly documented way to push changes to a Darcs Repoistory. It is done by the following command.
darcs push
or if your pushing to another repoistory, for the instance your sending a change to the stable and development repoistories. You may specify a patch where your pushing to like so.
darcs push <path to darcs repoistory>
A typical instance of using the darcs push command is shown below.
[cobramush@nveid[ttypts/10]~/darcs_sources/0.73]$ darcs push ~/darcs/0.80/development/cobramush [02:01pm/10-07-06] Mon Sep 4 22:23:49 EDT 2006 Ari Johnson * Updated repository for 0.73 development Shall I push this patch? (1/8) [ynWvpxqadjk], or ? for help: n Tue Sep 5 12:42:46 EDT 2006 Ari Johnson * Changed connect.txt version number Shall I push this patch? (2/8) [ynWvpxqadjk], or ? for help: n Fri Oct 6 20:17:02 EDT 2006 Nveid * cobrachathooks - necesarry hooks inside cobramush for the new beta cobra chat system. Shall I push this patch? (6/8) [ynWvpxqadjk], or ? for help: n Sat Oct 7 01:49:42 EDT 2006 Nveid * cobrapluschat - added pluschattable stuff for cobrachatness. Shall I push this patch? (7/8) [ynWvpxqadjk], or ? for help: n Sat Oct 7 13:59:16 EDT 2006 Nveid * Fixed it so division quotas are checked properley when an object is added to another divisions quota. Shall I push this patch? (8/8) [ynWvpxqadjk], or ? for help: y Finished applying...
Using Darcs Send
Another way to send to the CobraMUSH repoistory is using the darcs send
command the most likely you as the developer will be using
send in your darcs patches.
Each developer should have an assigned gpg key sent into the CobraMUSH development team when they started assisting with CobraMUSH. This key is to uniquely identify patches sent into the development patch email addresses signed by official CobraMUSH developers only. Any darcs patch sent to these email addresses will be ignored by the script upon receipt and does not get applied to a CobraMUSH repoistory.
Valid Development Patch Email Addresses
Note that these addresses are currently offline. Please send patches to devteam@cobramush.org for now.
- devpatches-080@cobramush.org
- devpatches-073@cobramush.org
- devpatches-072@cobramush.org
Sending a darcs patch is much similar to the process done using darcs push. Only instead of specifying a path, you specify the email address and you give it the –sign darcs switch.
darcs send --sign --to=<CobraMUSH Darcs Receipt Address>
Parties that happen to spot a bug in the CobraMUSH code, and are not an official CobraMUSH developer may contribute as well. However those such patches should be sent to the Development Team directly at cobramush-devteam@lists.theari.com where the CobraMUSH developers may review the Darcs patch sent in before applying it.