#
# Config file for cvs2p4
#
# $Id: //guest/jeffery_g_smith/perforce/utils/cvs2p4/test/config#1 $
# This will determine if this is a Windows based conversion. If this gets set
# to 1, then COPYIMPORT also gets set since Windows does not support sumbolic
# links.
#
use Config;
$MSWIN = ($Config{osname} == "MSWin32") ? 1 : 0;
# This flag is an experimental switch for better handling of
# repositories that are actually "Plain RCS", i.e., not created by
# CVS.
#
$PureRCS = 0;
# This flag removes data lines from the rcs files that are not part of the
# normal RCS file format and which can confuse Perforce. CVSNT is known to
# insert these lines in its RCS files. Setting this flag forces COPYIMPORT
#
$FIXRCSFORMAT = 1;
# p4 command location (If other than "/usr/local/bin/p4")
#
$P4 = "F:/Progra~1/Perforce/p4.exe";
# p4 command location (If other than "/usr/local/bin/p4d")
#
$P4D = "F:/Progra~1/Perforce/p4d.exe";
# Perforce server we're using.
#
$P4PORT = "1666";
# Perforce server's P4ROOT
#
# (Typically, you'll use an absolute path, but it can also be relative
# to where you execute the conversion commands from.)
#
$P4ROOT = 'JSMITHCVSCONVERT_P4ROOT';
# The depot pathname for copied/linked RCS archive files. (The path
# used will be $P4ROOT/$DEPOT/$CVS_MODULE/<filepath>).
#
# *** WARNING! ***: $DEPOT should be set to a path you will NEVER,
# EVER consider using (for anything other than imported revisions)
# within your Perforce depot. You should be safe as long as you
# don't create a client workspace that maps $DEPOT. Instead, map
# your converted files using the $P4_DEPOT path you choose (see
# below).
#
$DEPOT = "depot/JSMITHCVSCONVERT_IMPORT_DIR";
# Perforce user name to use during the conversion.
# This code defaults it to the user name of the user running
# the conversion, but you can override that here if you want.
#
if ($MSWIN)
{
$P4USER = $ENV{USERNAME}
}
else
{
(@pwent) = getpwuid($<);
if ($#pwent < 7)
{
print STDERR "$Myname: can't get your passwd file entry.\n";
exit 1;
}
$P4USER = $pwent[0];
}
# Top of the module in the p4 depot namespace. If this does not start
# with "//depot/", then a new depot will be defined in the converted
# database; e.g., with this set to "//Test", a depot named "Test" with
# map "Test/..." will be created.
#
$P4_DEPOT = "//depot/JSMITHCVSCONVERT_MODULE_NAME";
# Top of the CVS module repository to convert
#
# (Typically, you'll use an absolute path, but it can also be relative
# to where you execute the conversion commands from.)
#
$CVS_MODULE = 'JSMITHCVSCONVERT_MODULE_DIR';
# Whether to copy (rather thank link) the original RCS archives
# into $P4ROOT/depot/IMPORT. This affects "dochanges" only.
#
$COPYIMPORT = 1;
# Allow symlinks to directories in the top level of the RCS module.
# Useful for partial converts of CVS modules, where you only want
# certain subtrees, e.g., you have a cvs module "d" with:
#
# $CVSROOT/d/x
# $CVSROOT/d/y
# $CVSROOT/d/z
#
# ...and you only want to import d/x & d/z; you create
#
# $CVSROOT/D
# $CVSROOT/D/x -> $CVSROOT/d/x
# $CVSROOT/D/z -> $CVSROOT/d/z
#
# set CVS_MODULE to "D", and set this:
#
$SYM_SPECIAL = 1;
# Files you don't want.
# (Any files matching this regular expression will not be imported).
#
$IGNOREFILES = "^(.cvsignore)\$";
# Name of the "head" codeline (which will become the "main" branch in
# Perforce). Use "head" to get the cvs trunk, or another branch tag
# name if you want that branch to become the "main" branch in
# Perforce... This needs to be "shemp" to work for the test cases, and
# "shemp" should actually be OK as long as you don't have a branch
# named "shemp" in CVS - i.e., the trunk will end up as "main/..." in
# Perforce. But if that makes you nervous, you can set this to
# "trunk".
#
$TRUNKLINE = "head";
# Name for the "main" branch in Perforce.
#
$MAINNAME = "main";
# Conventional branch tag name suffix to remove when importing to
# Perforce. (This is a netapp specific thing; our branch tags were
# named <name>_BRANCH, but we wanted the "branches" in the Perforce
# depot to be "$P4_DEPOT/<name>").
#
$BRANCH_FLASH = "_BRANCH";
# Whether to go all the way back to the first rev on the trunk.
# (Otherwise, we just go back to the oldest ancestor rev of any
# converted branch).
#
$ALLTHEWAYBACK=1;
# Whether to treat CVS tags on 1.1.1.1 revisions in CVS as if they
# actually name revision "1.1".
#
# In some archives initialized with "cvs import", and subsequently
# tagged, the tags for files which have not been revised since the
# import will point at the 1.1.1.1 revision (which is on the "import"
# branch). Normally (without this) cvs2p4 will model this, i.e., the
# tag for such files will appear in the "import" branch. However, some
# users may want to consider the file as having been tagged in the
# "main" branch. Setting this option will make cvs2p4 treat the tag as
# if it had named the 1.1 revision (which is, presumably, always
# identical to the 1.1.1.1 revision after a "cvs import". Note that
# repositories which have had several vendor drops could have tags
# pointing to other revisions 1.1.1.{n>1}, and this will not help in
# such situations!
#
$IMPORTTAGSPOOF=0;
# Whether we're doing selected lines only...
#
# Typically, you might run "genmetadata" once with this set to 0,
# which will print a list of all branch tag names encountered in the
# repository. Then, you might want to fill in the <<LINES here file to
# specify the list of codelines (branches) you want to import into
# Perforce, set WANTLINES to 1, and rerun "genmetadata".
#
$WANTLINES = JSMITHCVSCONVERT_WANTLINES;
# If WANTLINES != 0, %WANTLINES contains a member for each codeline
# wanted...
#
if ($WANTLINES)
{
$wantlines = <<LINES;
JSMITHCVSCONVERT_WANTEDLINES
LINES
@wantlines = split(/\n/, $wantlines);
foreach $wantline (@wantlines)
{ $WANTLINES{$wantline} = 1; }
}
# DEADSTATE tells the convert what RCS state is to be considered
# "dead". Since CVS defines this to be "dead", that's the default, and
# you needn't much with this if you're converting a real CVS
# repository. But, if you're actually converting "raw RCS", and your
# site uses something else as the RCS state for a "deleted" file, you
# can specify that here:
#
$DEADSTATE = "dead";
# Whether to check for binary file revisions by extracting each
# revision from RCS, and using the perl "-B <file>" operator,
# regardless of the keyword expansion options in the RCS ,v file.
# Turning this on will slow the conversion process down some, but may
# help to correctly identify files which should be treated as binaries
# in Perforce, especially if your binary files don't all have RCS
# keyword expansion turned off, and if they cannot be comprehensivly
# identified by the EXT list (see below). Set to "1" to enable.
#
$CHECKBIN = 0;
# The Perforce filetype to use on imported text files; for now
# the choices are:
#
# 0x0020 to get "ktext"; or
# 0x0000 to get "text"
#
$TEXTTYPE = 0x0020;
# Path to the RCS "co" command; only needed if you have "CHECKBIN" set true.
#
$CO = "/usr/bin/co";
# File extensions to considered to signify binary files, regardless of the
# keyword expansion options in the RCS ,v files.
#
$EXT = <<EXTS;
a
bin
bmp
class
coff
com
dll
doc
dvi
dwarf
exe
fm
gif
gz
ico
jar
jpg
lib
o
obj
pdf
ps
tar
xbm
xls
zip
z
EXTS
@EXT = split(/\n/, $EXT); foreach my $ext (@EXT) { $EXT{$ext} = 1; }
1;