README #1

  • //
  • guest/
  • matthew_rice/
  • p4modules/
  • README
  • View
  • Commits
  • Open Download .zip Download (4 KB)
Part 0: What we've got

  P4/Modules.pm - a P4 module the reads an equivalent to the
		  cvs-modules file for mapping depot directories
		  into client directories or other branch directories.
		  And vice versa.  It's for writing scripts.
		  The public interface is pretty simple right now.

  bin/mkmodules.pl - a script to convert cvs-modules to p4-modules
  bin/mkbranch.pl  - a sample script for generating branch specs
  bin/mkclient.pl  - a sample script for generating client specs
  bin/c2pwhere.pl  - a sample script for mapping CVS directories back
			  into the depot.  Only useful for reference.

  bin/mkconvclient.pl - a script to map all of the branches for
			  all of the modules into a client spec.
			  Now that cvs2p4 supports P4::Modules, this
			  isn't really needed (and it makes for really
			  slow 'p4 where' commands).  Using the p4-modules
                          file from mkmodules.pl is the recommended practice.


Part 1: Getting ready to use P4::Modules


  CREATING A P4 MODULES FILE

To create a p4 modules file, use the mkmodules script.  This takes a
CVS modules file and creates an equivalent one that can be used by
the P4::Modules Perl module.

Obtain the use info with:

    mkmodules.pl -h


For an example of a mapfile, see sample.depotmap.
For an example of a CVS files regexp file, see sample.cvs-files.

The output of mkmodules can be saved and used as the modules definitions
for the other scripts.



  CREATING A CONVERSION CLIENT

To create a Perforce client spec which can be used to map all of the modules
and any branches desired into a Perforce client workspace.  You can import
the client spec into perforce with a command like:

    mkconvclient [ options ] | p4 client -i


Obtain the use info with:

    mkconvclient.pl -h


For an example of a branches file, see sample.branches.
For an example of a modules file, see sample.modules.



Part 2: Using P4::Modules


  CREATING A CLIENT SPEC

Use the mkclient.pl script to generate a Perforce client spec with the P4
modules and branches that you desire.  This script will only give you one
version of each module but you can mix and match which versions of each
module are mapped out of the Perforce depot.

You can import the client spec into perforce with a command like:

    mkclient [ options ] | p4 client -i


Obtain the use info with:

    mkclient.pl -h


For an example of a config file, see sample.mkclient.
For an example of a modules file, see sample.modules.



  CREATING A BRANCH SPEC

Use the mkbranch.pl script to generate a Perforce branch spec with the P4
modules and branches that you desire.  This script will only give you one
version of each module but you can mix and match which versions of each
module are branched to the new branch location.

You can import the branch spec into perforce with a command like:

    mkbranch [ options ] | p4 branch -i


Obtain the use info with:

    mkbranch.pl -h


For an example of a config file, see sample.mkbranch.
For an example of a modules file, see sample.modules.



  DETERMINING WHERE A CVS FILE IS IN THE DEPOT and
  FINDING DUPLICATELY MAPPED DIRECTORIES

Use the c2pwhere.pl script for this.  Given a path (and branch) under
CVSROOT, it will return the location in the depot.  As a side effect,
c2pwhere.pl also warns of conflicting file mappings.


Obtain the use info with:

    c2pwhere.pl -h


Example:

        ./bin/c2pwhere -b 0.5 -f atg.modules /atg/atginstall/lib/...
  or    ./bin/c2pwhere -b 0.5 -f atg.modules /atg/atginstall/lib/somefile

  example output is:

        //products/DAS/0.5/atg/atginstall/lib/...
  or    //products/DAS/0.5/atg/atginstall/lib/somefile

  NOTE: The path argument isn't the full path.  It's relative to CVSROOT.
# Change User Description Committed
#1 843 Matthew Rice Matt's cvs2p4 1.2.25 release