Coming eventuallyish: An SVC softcode browser.

For now, you can see published projects at:


What is SVC? SVC is "Softcode Version Control". Modeled vaguely off of perforce or svn,
+svc lets you create a project that is kept on the svc-server. It has features most
version control software does:

* You can have multiple copies of the project, on multiple mushes, and keep them all in sync.

* After making changes to your copy of a project, you can get a 'diff' that shows differing
  code between the checked out version and your changes.

* You can check in any number of objects, the svc bot will worry about dbrefs, links, locations,
  exit linking, attributes, locks, etc.

For a demo of the SVC bot, you can check;

If you're interested in getting +svc installed on your PennMUSH, it is a three step process:

  1) @pcreate a player named RubySVC, or aliased RubySVC. ("look *rubysvc" must work)
     @power *rubysvc=see_all pemit_all
     give *rubysvc=1000
     (You can @power it hide, if you like. Do not set it wizard)

  2) Log onto M*U*S*H and contact Walker with:
     Mush name: <name of your mush>
     Contact: <contact. If you're not active on M*U*S*H, then email>
     Host and port: < 1234>
     Connect string: "connect rubysvc <password>"

  3) When RubySVC is connected, go to the installers page and
     download the latest "SVC_installer_" that you see.
     (At the time of this writing, SVC_installer_4.txt
     is the latest)

  4) Create a child object for the master room, it must be wiz.
     @create SVC Globals Child
     @parent SVC Globals Child=SVC Globals
     @set SVC Globals Child=wizard !no_command
     @tel SVC Globals Child=#2


    * You may want to @lock/use the SVC Globals Child to only those players
      that have the ability to create objects, code, etc.
    * The globals child must be wizard, and must have any powers required
      to build.
    * The objects the globals child create must have any powers or flags
      required to build. To facilitate this, you can set an attribute,
      "ONCREATE" on the globals child (Don't set it on the parent!)
      that accepts a dbref as %0. e.g:
      &oncreate SVC Globals Child=@power %0=builder
    * Nothing that +svc deals with can be set wizard. This is in order to
      prevent the whole chain (RubySVC bot and the client object) from
      being set wizard. Instead of checking in a wizard object, check in
      a non-wizard parent object, and suggest people @parent a child object
      that can be set wizard.