#
#  Config file for cvs2p4
#

# $Id: //guest/hari_krishna_dara/perforce/utils/cvs2p4/test/config#1 $

# This flag is an experimental switch for better handling of
# repositories that are actually "Plain RCS", i.e., not created by
# CVS.
#
$PureRCS = 0;

# p4 command location (If other than "/usr/local/bin/p4")
#
$P4		= "/usr/local/bin/p4";

# p4 command location (If other than "/usr/local/bin/p4d")
#
$P4D		= "/usr/local/bin/p4d";

# Perforce server we're using.
#
$P4PORT = "localhost:1680";

# 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 = "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/IMPORT";

# 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.
#
#
(@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/Test";

# 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	= "test";

# 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    	= "shemp";

# 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 = 0;

# If WANTLINES != 0, %WANTLINES contains a member for each codeline
# wanted...
#
if ($WANTLINES)
  {
    $wantlines = <<LINES;
shemp
curly
chupa
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;