VCP::UIMachines(3)

NAME
    VCP::UIMachines - State machines for user interface

SYNOPSIS
    Called by VCP::UI

DESCRIPTION
The user interface module VCP::UI is a framework that bolts the implementation of the user interface to a state machine representing the user interface.

Each state in this state machine is a method that runs the state and returns a result (or dies to exit the program).

API

new Creates a new user interface object.

run Executes the user interface.

  Interactive Methods

init
    Initialize the machine

    Next state: source_id_prompt

source_id_prompt: Source id
    A symbolic name for the source repository. This is used to organize the VCP databases and to refer to the source repository in other places.

    Must consist of a leading letter then letters, numbers, underscores and dashes only.

    Valid answers:

         => source_type_prompt

source_type_prompt: Source type
    The kind of repository to copy data from.

    Valid answers:

        p4 => source_p4_run_p4d_prompt
        vss => source_vss_vssroot_prompt
        cvs => source_cvs_cvsroot_prompt

dest_id_prompt: Destination id
    A symbolic name for the destination repository. This is used to organize the VCP databases and to refer to the destination repository in other places.

    Must consist of a leading letter then letters, numbers, underscores and dashes only.

    Valid answers:

         => dest_type_prompt

dest_type_prompt: Destination SCM type
    The kind of repository to copy data to.

    Valid answers:

        cvs => dest_cvs_cvsroot_prompt
        p4 => dest_p4_run_p4d_prompt
        vss => dest_vss_vssroot_prompt

wrapup: Next step
    What to do with all of the entered options.

    Valid answers:

        Save config file and run => save_config_file
        Save config file and exit => save_config_file

save_config_file: Config file name
    What filename to write the configuration file to.

    Valid answers:

        Config filename => convert

convert
    Run VCP with the options entered

dest_p4_run_p4d_prompt: Launch a p4d for the destination
    If you would like to insert into an offline repository in a local directory, vcp can launch a 'p4d' daemon for you in that directory. It will use a random high numbered TCP port.

    Valid answers:

        yes => dest_p4_p4d_dir_prompt
        no => dest_p4_host_prompt

dest_p4_p4d_dir_prompt: Destination P4ROOT
    The directory of the destination repository, p4d will be launched here.

    Valid answers:

         => dest_p4_user_prompt

dest_p4_host_prompt: Destination P4PORT
    The hostname/IP address and port of the p4d to write to, separated by a colon. Defaults to the default P4PORT variable as reported by the 'p4 set' command (with a final default to "perforce:1666" if the p4 set command does not return anything).

    Valid answers:

        perforce:1666 => dest_p4_user_prompt

dest_p4_user_prompt: Destination P4USER
    The username to connect to the destination p4d with. Defaults to the user reported by the 'p4 set' command (with a final default to the USER environment variable if the p4 set command does not return anything).

    Valid answers:

         => dest_p4_password_prompt

dest_p4_password_prompt: Destination P4PASSWD
    The P4PASSWD needed to access the server. Leave blank to use the default reported by P4PASSWD.

    WARNING: entering a password will cause it to be echoed in plain text to the terminal.

    Valid answers:

         => dest_p4_filespec_prompt

dest_p4_filespec_prompt: Destination File Specification
    Where to place the transferred revisions. This is a perforce repository spec and must begin with "//" and a depot name ("//depot"), not a local filesystem spec or a "//client" or "//label" spec.

    Valid answers:

        //depot/directory-path/... => wrapup

dest_cvs_cvsroot_prompt: Destination CVSROOT
    Specifies the destination CVS repository location and protocol. Defaults to the CVSROOT environment variable. If this is a local directory, VCP can initialize it for you.

    Valid answers:

         => dest_cvs_filespec_prompt

dest_cvs_filespec_prompt: Destination CVS filespec
    Where to copy revisions to in the destination specified by CVSROOT. This must start with a CVS module name and may be in a subdirectory of the result:

        module/...
        module/path/to/directory/...
        module/path/to/file

    For directories, this should contain a trailing "..." wildcard, like "module/b/..." to indicate that the path is a directory.

    Valid answers:

        module/filepath/... => dest_cvs_init_cvsroot_prompt

dest_cvs_init_cvsroot_prompt: 'cvs init' the destination CVSROOT
    If the destination CVSROOT is a local directory, should VCP initialize a cvs repository in it?

    Valid answers:

        yes => wrapup
        no => wrapup

dest_vss_vssroot_prompt: Destination SSDIR
    The directory that will contain the srcsafe.ini file for the destination repostiory.

    Valid answers:

         => dest_vss_user_prompt

dest_vss_user_prompt: Destination SSUSER
    Enter the SSUSER value needed to access the destination server. Defaults to the current environment's SSUSER or 'Admin'.

    Valid answers:

         => dest_vss_password_prompt

dest_vss_password_prompt: Destination SSPWD
    If a password (SSPWD) is needed to access the destination server, enter it here. Defaults to the current SSPWD if one is set.

    WARNING: entering a password will cause it to be echoed in plain text to the terminal.

    Valid answers:

         => dest_vss_filespec_prompt

dest_vss_filespec_prompt: Destination VSS filespec
    Enter the vss filespec of the destination directory, with or without a leading "$/" or "/" (all names are taken as absolute).

    Valid answers:

         => dest_vss_mkss_prompt

dest_vss_mkss_prompt: 'mkss' the destination SSDIR
    If the destination SSDIR is a local directory, should VCP use mkss to initialize a vss repository in it?

    Valid answers:

        yes => wrapup
        no => wrapup

source_p4_run_p4d_prompt: Launch a p4d for the source
    If you would like to extract from an offline repository in a local directory, vcp can launch a 'p4d' daemon for you in that directory. It will use a random high numbered TCP port.

    Valid answers:

        no => source_p4_host_prompt
        yes => source_p4_p4d_dir_prompt

source_p4_p4d_dir_prompt: Source P4ROOT
    The directory of the source repository. The source p4d will be launched here.

    Valid answers:

         => source_p4_user_prompt

source_p4_host_prompt: Source P4PORT
    Enter the name and port of the p4d to read from, separated by a colon. Defaults to what is in config file, then the P4HOST environment variable if set or "perforce:1666" if not.

    Valid answers:

        perforce:1666 => source_p4_user_prompt

source_p4_user_prompt: Source P4USER
    Enter the P4USER value needed to access the server. Defaults to the P4USER value reported by p4 set (with a final default to the USER environment variable if p4 set does not return anything).

    Valid answers:

         => source_p4_password_prompt

source_p4_password_prompt: Source P4PASSWD
    If a password (P4PASSWD) is needed to access the server, enter it here. Defaults to the current P4PASSWD if one is set.

    WARNING: entering a password will cause it to be echoed in plain text to the terminal.

    Valid answers:

         => source_p4_filespec_prompt

source_p4_filespec_prompt: Source File specification
    If you want to copy a portion of the source repository, enter a p4 filespec starting with the depot name. Do not enter any revision or change number information.

    Valid answers:

        //depot/directory-path/... => dest_id_prompt

source_cvs_cvsroot_prompt: Source CVSROOT
    The CVSROOT to read revisions from. Defaults to the CVSROOT environment variable.

    Valid answers:

        cvsroot spec => source_cvs_filespec_prompt

source_cvs_filespec_prompt: Source CVS filespec
    Enter the cvs filespec of the file(s) to copy. This must start with a CVS module name and end in a filename, directory name, or "..." wildcard:

        module/...
        module/file
        module/path/to/subdir/...
        module/path/to/subdir/file

    Valid answers:

        module/filepath/... => source_cvs_working_directory_prompt

source_cvs_working_directory_prompt: Source CVS working directory
    Enter the CVS working directory (Optional). VCP::Source::cvs will cd to this directory before calling cvs and won't initialize a CVS workspace of its own. Leave blank to allow VCP to use a temporary directory.

    Valid answers:

         => source_cvs_binary_checkout_prompt

source_cvs_binary_checkout_prompt: Force binary checkout
    Pass the -kb option to cvs, to force a binary checkout. This is useful when you want a text file to be checked out with Unix linends, or if you know that some files in the repository are not flagged as binary files and should be.

    Valid answers:

        no => source_cvs_use_cvs_prompt
        yes => source_cvs_use_cvs_prompt

source_cvs_use_cvs_prompt: Use cvs executable
    This forces VCP to use the cvs executable rather than read local CVSROOT directories directly. This is slower, but may be used to work around any limitations that might crop up in VCP's RCS file parser.

    Valid answers:

        yes => dest_id_prompt
        no => dest_id_prompt

source_vss_vssroot_prompt: Source SSDIR
    The directory containing the srcsafe.ini file for the source repository.

    Valid answers:

         => source_vss_user_prompt

source_vss_user_prompt: Source SSUSER
    Enter the SSUSER value needed to access the server. Defaults to the current environment's SSUSER or 'Admin'.

    Valid answers:

         => source_vss_password_prompt

source_vss_password_prompt: Source SSPWD
    If a password (SSPWD) is needed to access the server, enter it here. Defaults to the current SSPWD if one is set.

    WARNING: entering a password will cause it to be echoed in plain text to the terminal.

    Valid answers:

         => source_vss_filespec_prompt

source_vss_filespec_prompt: Source VSS filespec
    Enter the vss filespec of the file(s) to copy, with or without a leading "$/" or "/" (all names are taken as absolute). To copy more than one file, use a "..." or "*" wildcard:

        ...                      Copy entire repository
        project1/...             Copy entire project
        project1/file            Copy one file
        project1/dir/...         Copy a subdirectory
        project1/dir/file*.bas   Copy a set of files

    Valid answers:

         => source_vss_undocheckout_prompt

source_vss_undocheckout_prompt: Issue "ss undocheckout" as needed
    If set, VCP will undo users' checkouts when it runs in to the "File ... is checked out by ..." error. This occurs, at least, when scanning metadata for a checked-out file when there is also a deleted version of the same file.

    Valid answers:

        yes => dest_id_prompt
        no => dest_id_prompt

WARNING: AUTOGENERATED
This module is autogenerated in the pre-distribution build process, so to change it, you need the master repository files in ui_machines/..., not a CPAN/PPM/tarball/.zip/etc. distribution.

COPYRIGHT
Copyright 2003, 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.

AUTHOR
Barrie Slaymaker <barries@slaysys.com>