# # Config file for cvs2p4 # # $Id: //guest/naveen_patil/perforce/utils/cvs2p4/test/config#2 $ # 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; } } # Whether we're doing selected labels only... # # "genmetadata" will generate a list of all symbolic tag names encountered in # the repository in file convdir/labels.lst. Before running "dolabels", # you might want to fill in the <<TAGS here file to specify the list of # tags (labels) you want to import into Perforce, and set WANTTAGS to 1. # $WANTTAGS = 0; # If WANTTAGS != 0, %WANTTAGS contains a member for each symbolic tag wanted... # if ($WANTTAGS) { $wanttags = <<TAGS; SHEMP TAGS @wanttags = split(/\n/, $wanttags); foreach $wanttag (@wanttags) { $WANTTAGS{$wanttag} = 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;
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 5134 | Naveen Patil |
Added ability to specify CVS symbolic tags that need to be imported as Perforce labels * convdir/config can define WANTTAGS and list of CVS symbolic tags * bin/genmetadata generates list of CVS symbolic tags in convdir/labels.lst, which can be used to configure the WANTTAGS list in convdir/config * if WANTTAGS is defined, bin/dolabels only imports the CVS symbolic tags listed in convdir/config |
||
#1 | 5127 | Naveen Patil | BRANCH - Branched //public/perforce/utils/cvs2p4/... | ||
//guest/perforce_software/utils/cvs2p4/test/config | |||||
#13 | 4923 | Richard Geiger | Integrate 2.5.1-3 changes. | ||
#12 | 3600 | Richard Geiger | publish 2.3.5. | ||
#11 | 2063 | rmg | Publish 2.3.2 | ||
#10 | 1989 | Richard Geiger | Public 2.3.1 | ||
#9 | 1971 | rmg | Publish 2.2 | ||
#8 | 1786 | rmg | Publish 2.0 | ||
#7 | 1410 | rmg | Publish 1.3.2 | ||
#6 | 1205 | Richard Geiger | Publish 1.3.1 | ||
#5 | 1187 | Richard Geiger |
1.3. Mainly, support for labels! |
||
#4 | 1033 | Richard Geiger | publish 1.2.17 | ||
#3 | 796 | Richard Geiger | Release 1.2.16 update | ||
#2 | 230 | Laura Wingerd |
Pull cvs2p4 into //public so latest version (1.2.4) gets synced onto the Perforce FTP area. |
||
#1 | 152 | Laura Wingerd | cvs2p4 goes public. | ||
//guest/richard_geiger/utils/cvs2p4/test/config | |||||
#1 | 130 | Richard Geiger |
CVS-to-Perforce converter. This is release 1.2.2 (first submit to the Perforce Public Depot) |