[MUD-Dev] Ruminations on CVS and developing in the Bazaar

Petri Virkkula pvirkkul at iki.fi
Sat Nov 28 10:35:41 CET 1998


>>>>> "Ben" == Ben Greear <greear at cyberhighway.net> writes:

Ben> The problem is trust.  The most likely scenario is that I
Ben> will have never met the ppl who want to help.  How can I trust them?

Ben> Reality is, I can't really them completely.  So, does that mean
Ben> watching everything they contribute to make sure they aren't
Ben> screwing something up either on purpose or on accident??  That would
Ben> seem to go against the benefits of open development....

	I think issue is: do you trus to the people you working with?
	If there are multiple active developers you should trust them,
	otherwise I don't it is realistic even work with them in the
	beginning.

	Then there are people who contribute only small snippets and
	bug fixes. It is a good idea to require them to provide
	context sensitive patches that you can incorporate into the
	development tree. There is no need to give full CVS access to
	such persons. As far I know CVS itself is developed in this
	manner: only core development team has full CVS access, others
	provide patches that one of the developers incorporates into
	the development team.

	Accidents happens to everybody, and best protection against
	them is good backups. With CVS you however cannot completely
	remove files, "removed" files are just moved to "Attic". So I
	think CVS is safe in this respect.


Ben> Does anyone have any experience that they would like to share?
Ben> Any specific technological (ie CVS tricks) you think might help?

	CVS is very helpful in mud development, especially in muds
	where modifications or/and additions are done all the
	time. Atleast in BatMUD we no longer take full snapshot
	backups of our mudlib so often. Instead all modifications are
	automatically committed once a day (6am) into our CVS
	repository. The CVS repository is easier to backup, and it
	takes even less space than multiple snapshot backups.
	Right now we can restore the files based on exact date, make
	comparisons based on dates, eg. how file room.c has been
	changed during time period between 1998-06-11 and
	1998-08-30. And all of this is possible without browsing
	backups on tapes. Here is an example:

--- cut here ---
argon at cave [10:23] nroom % cvs diff -c -D1998-06-11 -D1998-08-30 room.c | cat | head -20
Index: room.c
===================================================================
RCS file: /opt/cvs/lib/cvs/cvsroot/batmud/mudlib/nroom/room.c,v
retrieving revision 1.2
retrieving revision 1.6
diff -c -r1.2 -r1.6
*** room.c      1998/04/25 20:32:51     1.2
--- room.c      1998/08/21 03:04:30     1.6
***************
*** 23,45 ****
  #undef LOG_CLEANUP
  
  static mapping dirmap = ([ ]);
! static mapping tracks;
  
  create()
  {
    items::create();
    flags::reset(0);
    weather::reset(0);
argon at cave [10:23] nroom % 
--- cut here ---

	Above is head of diffs. From the diffs can easily be seen that
	during the time peiod tracking code (basically "track" and
	"wipe tracks" skills, see
	<URL:http://www.bat.org/Batmud/mudinfo/skills/track.html> and
	<URL:http://www.bat.org/Batmud/mudinfo/skills/wipe_tracks.html>).

	The most important part is that whole CVS is invisible to
	developers as most of them do not bother to learn how to use it.
	Everything is done automatically, and that is very important
	thing in a mud where online wizards/players ratio is around
	1/10.

	Our WWW pages are also distributed through CVS from the
	machine running the mud to the machine running the WWW
	server. Every 20 minutes new changes in the mud machine is
	committed into CVS and 5 minute after every commit the WWW
	machine updates its WWW page tree from the CVS. The main
	reason was limiting cross NFS mounting but that is not the
	only advantage of use of CVS in WWW server. We could even move
	the WWW server machine into a separate network (different
	ISP) thus in case of broken network atleast WWW-server or the
	mud should be accessible to our players. And WWW pages would
	still be updated automatically from the mud machine or other
	development machines.

	We have also full shell accounts for all our wizards
	(restricted in sense that they cannot make further network
	connections from their shells). Wizards can edit their own
	files in the shell account. They could also checkout their own
	files through CVS if they wished to do the all development
	work in their own machines (their files are not automatically
	in CVS), but as far as I know nobody uses this possibility.


	Petri




More information about the mud-dev-archive mailing list