NAME
   `VCS::StarTeam' - Provide a simple interface to StarBase's StarTeam.

SYNOPSIS
           #!perl -w

           use strict;

           use VCS::StarTeam;

           $obj = VCS::StarTeam->new( {
                   batchmode               => 0,
                   compress                => 0,
                   host                    => 'localhost',
                   endpoint                => '1024',
                   project                 => 'BigNewIdea',
                   password                => 'MyPassword',
                   path                    => 'Source/MyIdea',
                   recurse                 => 0,
                   stoponerror             => 0,
                   username                => 'StarTeamUser',
                   verbose                 => 1,
                   view                    => 'MyMainView',
           } );

           #
           # view the history of helloworld.c
           #
           $obj->hist( 'helloworld.c' );

           # OR

           $obj->history( 'helloworld.c' );

           # OR

           $obj->log( 'helloworld.c' );

           #
           # list all the C source files in the current folder
           #
           $obj->list( '*.c' );

           #
           # force the checkout of helloworld.c and lock it
           #
           $obj->checkout( '-o', '-l', 'helloworld.c' );

           # OR

           $obj->co( '-o', '-l', 'helloworld.c' );

           # OR

           $obj->get( '-o', '-l', 'helloworld.c' );

           #
           # checkin and unlock helloworld.c
           #
           $obj->checkin( '-u', "-r \"Cool changes\"", 'helloworld.c' );

           # OR

           $obj->ci( '-u', "-r \"Cool changes\"", 'helloworld.c' );

           # OR

           $obj->put( '-u', "-r \"Cool changes\"", 'helloworld.c' );

           #
           # compare revision 1 & 2 of helloworld.c
           #
           $obj->diff( '-vn 2', '-vn 1', 'helloworld.c'  );

           # OR

           $obj->vdiff( '-vn 2', '-vn 1', 'helloworld.c'  );

           #
           # N.B. the arguments may all be in one string,
           # or separated by quotes.
           #
           $obj->co( '-o', '-l', 'helloworld.c' );

           # OR
           $obj->co( '-o -l helloworld.c' );

           #
           # clean up
           #
           undef $obj;

DESCRIPTION
   The `VCS::StarTeam' module provides an OO interface to StarTeam.

INTERFACE
 PUBLIC METHODS

   `history'
       Convenience routine calls private method `_hist'

   `hist'
       Convenience routine calls private method `_hist'

   `log'
       Convenience routine calls private method `_hist'

   `list'
       Equivalent to issuing the command `stcmd list...'. Pass options and
       file names as parameters.

   `checkout'
       Convenience routine calls private method `_co'

   `co'
       Convenience routine calls private method `_co'

   `get'
       Convenience routine calls private method `_co'

   `checkin'
       Convenience routine calls private method `_ci'

   `ci'
       Convenience routine calls private method `_ci'

   `put'
       Convenience routine calls private method `_ci'

   `diff'
       Convenience routine calls private method `_diff'

   `vdiff'
       Convenience routine calls private method `_diff'

 PRIVATE METHODS

   `_hist'
       Equivalent to issuing the command `stcmd hist *[hist options]*
       *files*'. Pass options and file names as parameters.

   `_ci'
       Equivalent to issuing the command `stcmd ci *[ci options]* *files*'.
       Pass options and file names as parameters.

   `_co'
       Equivalent to issuing the command `stcmd co *[co options]* *files*'.
       Pass options and file names as parameters.

   `_diff'
       Equivalent to issuing the command `stcmd diff *[diff options]*
       *files*'. Pass options and file names as parameters.

   `_runOrCroak'
       The standard way to run a system command and report on the result. I
       "borrowed" and modified this routine from Ron Savage's
       *<[email protected]>* `VCS::CVS' module. It will honor the
       'verbose' parameter.

   `_getpparam'
       Builds the '-p' argument string used in `stcmd' commands.

 PROPERTIES

   `batchmode'
       Boolean used to toggle between interactive and batch modes. If you
       do not set this parameter to non-zero (TRUE) you must confirm error
       messages interactively. Default to 0 (interactive mode).

   `compress'
       Compresses all the data sent between the workstation and StarTeam
       server and decompresses it when it arrives. Useful for slow
       connections. Defaults to 0 (off).

   `host'
       StarTeam server hostname. If omitted, `host' defaults to
       "localhost".

   `endpoint'
       StarTeam server endpoint (for example a port number or named pipe).
       If omitted, `endpoint' defaults to "1024".

   `project'
       The StarTeam project name. You must always supply a project name.

   `password'
       StarTeam user's password. If omitted, the user will be prompted to
       enter the password.

   `path'
       Folder hierarchy. This can be omitted if the file is in the view's
       root folder. The folder hierarchy should never include the root
       folder. For example, if the root folder of the view is `BigNewIdea'
       and the hierarchy to your files is `BigNewIdea/SourceCode/Client',
       use only `SourceCode/Client' as the folder hierarchy.

   `recurse'
       If non-zero (TRUE), applies the command to child folders. Defaults
       to 0 (off).

   `stoponerror'
       Often used in batch mode (see property `batchmode' above). If
       non-zero (TRUE) will halt execution of the command when the first
       error is encountered. Defaults to 0 (off).

   `username'
       The StarTeam user name. If omitted, the current user's logon name is
       used.

   `verbose'
       Boolean used to instruct the module to display or suppress progress
       reporting. `verbose' defaults to 0 (suppress progress reporting).

   `view'
       The StarTeam project view. If omitted, the root, or default, view is
       used.

INSTALLATION
   You install `VCS::StarTeam', as you would install any perl module
   library, by running these commands:

           perl Makefile.PL
           make
           make test
           make install

AUTHOR
   `VCS::StarTeam' was written by Joe P. Hayes *<[email protected]>*
   in 2001.

LICENSE
   The `VCS::StarTeam' module is Copyright (c) 2001 Joe P. Hayes. All
   Rights Reserved.

   You may distribute under the terms of either the GNU General Public
   License or the Artistic License, as specified in the Perl README file.

SUPPORT / WARRANTY
   The `VCS::StarTeam' module is free software.

   IT COMES WITHOUT WARRANTY OF ANY KIND.

   Commercial support for Perl can be arranged via The Perl Clinic. For
   more details visit:

     http://www.perlclinic.com