man VCP::Utils::cvs () - utilities for dealing with the cvs command


VCP::Utils::cvs - utilities for dealing with the cvs command


   use VCP::Utils::cvs ;


A mix-in class providing methods shared by VCP::Source::cvs and VCP::Dest::cvs, mostly wrappers for calling the cvs command.


Calls the cvs command with the appropriate cvsroot option.
This handles :pserver:-like type repository specs specially, defaulting to normal processing if the scheme is not followed by something like foo. The username and password are parsed out of the spec If the first colon is followed by a colon, like
, then the special processing kicks in and the spec is parsed accordingly. Everything up to and including the first colon and starting with the last colon are stripped, just like with normal specs, and the remainder becomes the CVSROOT. This does have the side effect of plaintexting the password in various CVS places (like the local CVS directories and the command lines that VCP forks to launch CVS). Let me know if you need this changed.
Returns the specced cvsroot if set, or CW$ENV{CVSROOT} if not. While CW$ENV{CVSROOT} must be an absolute path if it's local (to be completely consistent with the cvs command), the path repo_server value, if set, may be relative (unless it begins with a ':', which indicates a non-local path).
    $self->create_cvs_workspace( create_in_repository => 1 );
Creates a temp dir named co for CWcvs to work in, checks out the module there, and sets the work root and cvs working dir to that directory.
    RCS_check_tag $tag1, ...;
Checks a list of tags for legality, die()s if it's not legal. Named after the corresponding routine in CVS's rcs.c source file. No clue how this interacts with your locale.
    @tags = RCS_check_tag $tag1, ...;
Modifies a list of tags, replacing illegal characters with underscores. This may lead to tag collisions, but it should be ok for most uses. Converts something like a@ to a_AF_. Not a guaranteed solution, but good enough for now.


Copyright 2000, Perforce Software, Inc. All Rights Reserved.

This module and the VCP package are licensed according to the terms given in the file LICENSE accompanying this distribution, a copy of which is included in vcp.