DimensioneX/CVS

From DimensioneX
Jump to: navigation, search
Dimx logoinvsmall.gif
back to DimensioneX WIKI main and Italian WIKI


This article describes how to contribute to the development of DimensioneX by using CVS (Concurrent Versions System).


How to Work collaboratively on DimensioneX code

The basic idea is simple:

  1. With WinCVS, you check out a fresh copy of DimX software from our repository. You obtain a copy of the software in a CVS-controlled folder.
  2. You copy files onto your own DimX installation (Tomcat tree)
  3. You do all your changes, editing/testing work;
  4. When done, you copy the modified files onto the CVS-controlled folder you got in step 1.
  5. With WinCVS, you perform an UPDATE operation, to merge your work with any changes that other authors may have done in the meantime. If there are any conflicts at this point we commnicate on the Forum and resolve them.
  6. After the UPDATE operation ends OK, you COMMIT changes to our repository.


Step by Step guide

Preparation

1) Get a developer account on [SourceForge.net].

2) Send your SourceForge username to cris (at) dimensionex.net and tell you wanna be a DimX development contributor. Please specify "dimensionex" somewhere in the mail subject so to avoid my antispam to trash it.

3) Cris places you between DimX developers so that you are enable to write on the repository (SourceForge says that read access is granted to all, anonymously, but we never were able to do it this way so please DO get an account on sourceforge.net)

4) Get and install WinCVS from www.wincvs.org

5) Create a folder named "CVSprojects" on your hard disk, then run WinCVS. Open your CVSprojects folder with the built-in WinCVS explorer window.

6) Right click your "CVSprojects" folder, choose Checkout Module...

7) In the pop-up window that appears ("Checkout settings"), specify:

  • Module name: modulename (Replace modulename with one of the module names provided in the section below)
  • Local folder to checkout to: (this should be your CVSprojects folder, leave the existing value untouched)
  • CVSROOT: choose our valid CVS string. If no one is present (normal at 1st time) click the [...] button to open the CVSROOT builder. Specify:
    • Protocol: ssh
    • Repository path: /cvsroot/projectname (Replace projectname with one of the project names provided in the section below))
  • In the keywords grid:
    • username (your username on sourceforge),
    • Password (your password on SourceForge)
    • Hostname: projectname.cvs.sourceforge.net

click OK to close the CVSROOT-builder.

click OK in the "Checkout settings" window to initiate the transfer. At the end of the transfer you have your own CVS-controlled copy inside CVSprojects.

Updating, editing and storing the files

These steps are the day by day work. We assume you have done all the Preparation steps above.

10) Before initiating a batch of new changes, perform an UPDATE to get any changes that other authors may have done since your last CHECKOUT/UPDATE/COMMIT operation.

11) Copy the files from your CVS-controlled folder into your running development installation of DimensioneX (it can be either the Tomcat tree or the NetBeans tree). Modify the files according to your needs.

12) To release a new version, copy the changed files from your running DimensioneX installation back to the CVS-controlled folder of the DimensioneX files, and run an UPDATE on that folder. This will ensure that in the meantime there have been no updates by other authors.

If there were any changes, CVS will try to merge them with yours.

If this is not possile, then we have a version conflict. In this case go to [our Forum]: we must communicate to resolve the conflict.

12) When the UPDATE returns OK, then run COMMIT to store your changed package onto our repository

13) Before initiating a batch of new changes, re-start from step 10.

Done!

Projects/Modules

This section specifies the names of the modules that you can import and contribute to. The name of the project is also importanto in order to succesfully connect to the right repository on SourceForge.

DimensioneX

Project name is: dimensionex

dimx_classes
Classes: Contents of the classes folder of the DimensioneX kit.
dimx_system
System: Contents of the system folder of the DimensioneX kit.


dimxdev
OBSOLETE The whole dimx tree to be managed under NetBeans. Obsolete, we will not update this one any more. Don't use it.

Underworld

Project name is: underworldgame

underworld_eng
Underworld, English version
underworld_ita
Underworld, Italian version

Doing more

Creating new modules

In order to minimize risko of confusion to the users, you should not create new modules unless you have an explicit agreement with the project co-ordinator.

However the procedure is simple:

  1. Create a new folder inside your CVSprojects folder which will contain the new module. The folder name represents the new module name;
  2. Perform an IMPORT operation on the repository;
  3. Rename or move away your new folder;
  4. Now perform a module CHECKOUT operation. The copy you have obtained now is CVS-controlled. Work as usual with it.

Jargon Buster

CVS
Concurrent Versions System. The worldwide standard for managing versions of source files.
module
Package of files which make some sense together. In practice, a module is a folder with files and other folders inside.
repository
Database where the files will be stored.
IMPORT
With this operation, you store a new module in the repository
CHECKOUT
With this operation, you get a fresh copy of all the most updated version of a module. At the end you have a new folder on your hard-disk (the module).
UPDATE
With this operation, you get the latest versions of all the files of a module you already have on your hard disk (the module must be already under control of CVS)
CVS-controlled
a folder is CVS-controlled when it has extra info in it managed by CVS. Typically, CVS stores its own information in special subfolders, named "CVS". Never delete them!