[prev] [up] [next]

Sourcecode & Revision Management (General)

Contents

Introduction

ST/X includes interface classes and browser support which allow smalltalk classes to be managed by file or database based sourcecode revision management systems, such as CVS, SVN (subversion) or P4 (perforce).

Also, mixed configurations are possible, in which different class packages are located in different repositories. This is especially useful when access to exept's ST/X master repository (which is a CVS repository) is required, while at the same time, local package sources are to be stored in some other (local) repository.

Choosing a Sourcecode Management Scheme

Currently, the source code management (SCM) scheme which is best integrated into ST/X is CVS. All files for the whole build and deployment process can be generated and checked into CVS from within the ST/X system browser. This allows for completely unattented builds to be done automatically, by systems similar to jenkins (hudson), or batch/shell scripts.

However, the choice of which SCM scheme to use may also depend on the existing infrastructure. If your company uses SVN or Perforce to package and build products, this may be a good choice for ST/X projects as well.

The following table lists the currently supported SCM schemes and their pros and cons:
Name Description Pro Con
CVS Concurrent Source Code Management System +local and remote operation
+best integration
+supports file based command line operation
+fully automated build
-slow if remote and slow connection
-class renaming troublesome
-class moving troublesome
-no branch support (*)
SVN Subversion Source Code Manager +local and remote operation
+good integration
+supports file based command line operation
+almost fully automated build
P4 Perforce P4 Source Code Manager +local and remote operation
+supports file based command line operation
-commercial; requires license
Git Git Source Code Manager +local and remote operation
+supports file based command line operation
-unfinished; highly experimental
Mercurial Mercurial Source Code Manager +local and remote operation
+supports file based command line operation
-unfinished; highly experimental
Monticello Monticello Packaging System
Squeak Source Repository
+local and remote operation
+standard in Smalltalk
+support in Squeak, VW and V'Age
-only for code interchange
-no file based command line operation
-no build support
STORE STORE DB
Cincom/VisualWorks Source Reporitory
+local and remote operation
+standard in VW
-only for code interchange
-no file based command line operation
-no build support
-new database format is not supported
Filebased Dummy SCM using the Local Filesystem +fast
+standalone: no installation required
-only for small one-man projects
-only local operation
-limited build support
DBbased Dummy SCM using a Local Database +fast
+standalone: no installation required (uses SQlite)
+remote: uses ODBC to access server
-only for small projects
-only local operation
-limited build support
(*): some cons are not resulting from limitations of the SCM scheme itself, but the interface implemented by ST/X classes.

CVS

CVS is a file based source code revisioning system. This is the main scheme used by exept itself for the ST/X repository. It is best integrated into both the browsers and the automated build process. Classes and packages can be checked in/out from the browser, compared against older versions, and checked out as a whole tree (including make and build files) for automatic builds. Builds only require a "cvs checkout" followed by "make". Integration into automated build servers (such as jenkins) is trivial. More info in CVS Sourcecode Manager.

SVN (Subversion)

SVN is a file based source code revisioning system. ST/X support for this scheme was developed and is mainly used by students of the university of prague to manage and build their projects. It is well integrated into both the browsers and their automated build process. Classes and packages can be checked in/out from the browser, compared against older versions, and checked out as a whole tree (including make and build files) for automatic builds. Builds only require a "cvs checkout" followed by "make". Integration into automated build servers (such as jenkins) is trivial. More info in SVN Sourcecode Manager (to be written).

Perforce P4

P4 is a file based source code revisioning system. ST/X support for this scheme was developed, maintained and used by one of our major ST/X customers. The P4 interface is avaliable royalty free. However, P4 itself is a commercial product which must be licensed separately. It is integrated into the browsers and their automated build process. Classes and packages can be checked in/out from the browser, compared against older versions, and checked out as a whole tree (including make and build files) for automatic builds. Builds only require a "cvs checkout" followed by "make". More info in P4 Sourcecode Manager (to be written).

Git

Git is a file based source code revisioning system. Support for Git is currently in an early experimental development phase. More info in Git Sourcecode Manager (to be written).

Mercurial (hg, kiln)

Mercurial (hg) is a file based source code revisioning system. Support for Mercurial is currently in an early experimental development phase. More info in Mercurial Sourcecode Manager (to be written).

Monticello

Monticello is the main scheme used in the Squeak Smalltalk community to package, deploy and distribute source code. Monticello packages are technically zip archives which wrap a package's source together with some meta information. The ST/X monticello adaption can only be used for code interchange. It does not support any automated build process.

STORE Database

STORE is the main scheme used in the VisualWorks Smalltalk community to package, deploy and distribute source code. STORE uses centralized databases, which are accessed via ODBC or MySQL. The ST/X STORE adaption can only be used for code import. Neither export, nor any build support is provided.

Due to the fact that Cincom has recently changed the DB-scheme, the current version of the STORE manager may fail to access a remote STORE database.

The STORE source code manager is an unsupported, experimental goody. It may require extra work to make it fullfill your particular needs.

File- and DB-Based Dummy SCMs

These two managers are provided as toy/demonstration frameworks. They can be used for versioning of small, local one-man projects only. They may be useful for simple versioning if no CVS or SVN installation is possible or wanted. They can also be used as a guide to how interfaces to other SCM schemes are implemented.

Setting up the Sourcecode Management

-- to be written --


Copyright © 2012 eXept Software AG, all rights reserved

<cg@exept.de>

Doc $Revision: 1.35 $ $Date: 2012/03/02 15:19:00 $