=== Release 0.5, December 1997 This was an informal release to Perforce, so James could see what it was like. === Release 1.0, January 30, 1998 - Contains several bug fixes you really want if you intend to use this for real. - Verified the results of a complete conversion of the NetApp Data ONTAP source base, by converting then doing file-by file comparisons of the results of checking trees out from both CVS and Perforce, across several branches. - Added minimal user documentation in the README file. - Added a minimal automated test script. - Placed under the Artistic license. === Release 1.0.1, February 3, 1998 - Incorporate James Strickland's README edits - make bin/* kxtext - bin/* script now find perl via PATH (it must be perl5 or they will fail). - MANIFEST doesn't try to check checksums on FreeBSD systems. - Added $CO to the test/config template file for specifying where to find the RCS "co" command - CHECKPOINT_INTERVAL defaults to "10" for running the test config, but "0" otherwise in the test/config template. === Release 1.0.2, February 9, 1998 - Incorporate README typos fixes from James Strickland - tests/* executables find Perl via $PATH - Remove dup entry for test/changes.good from MANIFEST - Remove "." from $check_submits in bin/dochanges (the "." was there for debugging, and, in effect, disables all output error checks on submits! === Release 1.1, March 10, 1998 - Change conversion client name from "dochanges" to "cvs2p4" - The CVS trunk is now created as "main" in the Perforce depot. - Converts "$Header: //guest/richard_geiger/utils/cvs2p4/NEWS#66 $" to "$Id: //guest/richard_geiger/utils/cvs2p4/NEWS#66 $" for text files. - Added support for "vendor" branches (RCS branch 1.1.1); becomes branch "import" in Perforce. - Added SYM_SPECIAL support for selectively importing top level subdirs of a CVS module via symlinks. - Optimizations for genchanges, which help *lots( with huge checkins of vendor-supplied branches (I.e., where there are many changes with large numbers of files). - Fixed a bug in genchanges such that, for purposes of change grouping, all revisions were considered to have happened in the midnight hour (plus the actual number of minutes after the hour at which they actually occurred). Taken with the other grouping hueristics, this was pretty benign, I think, but it's fixed now. - Fixed a bug wherein checkppoints were always trying to checkpoint the server at port 1666 on the host running the server. - Also, *only* do checkpoints at NetApp, 'cause they depend p4d_admin! - Take a checkpoint at the very end - Now detects binary files in additional ways: perl -B operator known list of binary file extensions (hardcoded into dochanges for now) (This helps where binaries were checked in to CVS but nobody told CVS by selecting a binary keyword expansion mode). - The diffs in the test stuff in 1.0.1 and 1.0.2 was inadvertantly disabled, so you could get false PASSes. Oops. Fixed. === Release 1.1.1, March 10, 1998 - Damn. The fix for multi-binary detection was not complete. It is now. Really. At least it had better be, I'm about to convert 25K p4 changes worth of our real source with this sucker... === Release 1.2 - Implement "dochanges -s <n>" to make the converter restartable. Yeah. - Added a couple of test cases for branch tags sharing tip & trunk revs. - Reimplement revmap to do per-revision stuff, to allow for merging. - Fix ALLTHEWAYBACK to look for the earliest non-trunk revision actually selected by any branch tag - not just the earliest one where a real branch was found. * This was the version used during our actual main CVS -> Perforce conversion on 3/20-3/21 1998. === Release 1.2.1 - Fix bug reported by Ed Rapoport, wherein: "There was a problem, however, in the case of cvs files where there were at least two branches with the second branch branching off the first, but not yet having a delta created in the cvs file (an "incipient" branch) The incipient branch name (br_orca_autocal in the example) got applied to its parent branch (br_orca_intermed in the example) and the parent branch name got applied to the child incipient branch in perforce." === Release 1.2.2 - Fix spurious error reports from the final diff (p4_describe vs p4_describe.good) when running the test cases with r98.2. (This was caused by an apparent change, in which the diffs produced by the r97.3 "p4 describe" include Id keyword expansions, but the r98.2 "p4 describe" does not). === Release 1.2.3 - Only attempt checkpointing if $CHECKPOINT_INTERVAL > 0. (So I can really turn it off in the config file!) - Fix bug reported by Todd LaWall <toddl@SiTera.com>, wherein: a branched file, that has not been changed since the branch was made, is dropped from the branch, if $BRANCH_FLASH is not defined in the cvs2p4 config file. (bug in genmetadata). === Release 1.2.4 - In some circumstances, "p4 files" can return a different error message for "p4 files foo", when "foo" doesn't already exist in the depot. This change allows "dochanges" to work properly when this happens. (The precise circumstances in which the alternate message is returned are not yet well characterized). === Release 1.2.5 January 3, 2000. - This adds adjustments for making cvs2p4 cope correctly with post-1999 revisions in the RCS archives being converted, as supplied by David Simon of Goldman Sachs. (Thanks). === Release 1.2.6, January 18, 2000. - The conversion scripts should now be able to cope with shell metacharacters (notable, ' ' and '$') in file names. This has not been thouroughly tested, so if you do have such files, please pay particualr scrutiny to them. === Release 1.2.7, April 5, 2000. - A fix for a bug that caused genmetadata to croak when it encountered an RCS file with the default branch set, a la "rcs -b1 file,v" === Release 1.2.8, May 11, 2000. - Handles cr/lf line endings in RCS archives. === Release 1.2.9, May 16, 2000. - Allow "." in "id" symbols in RCS files. (Author names like "ralph.spoilsport") === Release 1.2.10, August 24, 2000. - Tolerate "empty" RCS ,v files that can (reportedly) be created due to certain failing cvs operations. (These files will be ignored; previously, they would cause a fatal error in genmetadata). === Release 1.2.11, August 30, 2000. - Skip (and note) ,v files with nonprintable characters in the fileame. === Release 1.2.12, September 11, 2000. - Includes a bugfix, supplied by Thomas Quinot <quinot@inf.enst.fr>, to correctly handle the fact that RCS timestamps in repository files are in UTC; this was causing the timestamps to be off (by the difference between UTC and the Perforce server's local time) in converted depots, and, in some cases, cause outright failures. (I.e., when the UTC time had never existed in local time, due to daylight savings transitions.) === Release 1.2.13, September 12, 2000. - Fixes a bug (resulting in bad date translations) introduced in the bugfix in 1.2.12. (Fix supplied by Thomas Quinot). === Release 1.2.14, November 20, 2000. - Now performs metadata sort using a sort routine coded directly in perl, rather than by using the host system's "sort" command. (Differences in "sort" behavior from one host to another had been observed to cause irregularities). === Release 1.2.15, December 12, 2000. - Now rejects filenames with illegal Perforce characters. (Fix supplied by Doug Quist). === Release 1.2.16, August 27, 2001 - Reflect my recent job (and email address) change - Changes some of the default values (and names) of "config" file variables, to better match the environment I'm most like to work in now. - Change all "p4" invokations to explicitly specify P4PORT, P4CLIENT and P4USER on the command line, so as not to be confused by and P4CONFIG files that might otherwise come into play. === Release 1.2.17, November 5, 2001 - Add an assertion for duplicate filenames d/f,v & d/Attic/f,v (This is not valid in a CVS repository!) - Fix a bug where one-letter identifiers would cause an internal error in genmetadata. (Bug reported by Rich Ireland <rireland@enterasys.com>) === Release 1.3, December 26, 2001 - Add Change [0-9]+ renamed change [0-9]+ and submitted.\$ to $check_submits in bin/dochanges and recognize the /^Change \d+ renamed change (\d+) and submitted\.$/ form of the success message. Allows messages about change renumbering, so cvs2p4 can be used to import to an existing (nonvirginal!) server. Note that I *don't* claim this works completely now, but from my experience at Orca a year ago, this was the only bugaboo that bit. Note also that it's still the user's obligation to insure that there are no pathname overlaps with files that already exist. *That* is guaranteed not to work! - First whack at support for creating Perforce labels from CVS tags. CVS *branch* tags are treated as branching information, (same as ever), but plain old tagged revisions get built into Perforce labels. The Perforce labels are created with the default (all-depot) view mapping. The mods involved changes to genmetadata (to remember the label info), dochanges (to make the RCS-to-Perforce revisions map (the existing revmap went the other way, so now we have both), and a new stage "dolabels" to create and populate the labels. Also sundry files for test cases & machinery. This implementation has not yet been tested a great deal with real road mileage, but, alas, this time I'm adding the feature for other, rather than as part of my own big conversion effort. So, we'll see. - revmap output for the Perforce -> RCS direction is now cleaner. - Finally, in putting in the support for labels, I was forced to look a lot closer at a lot more of the code than I have in some time. Needless to say, there's much I would do differently a second time around (and considering the tool to be more than a one-use thing to begin with!). Also, I'm now armed with enough knowledge, I think, to do a fast "direct to metadata" conversion... === Release 1.3.1, January 4, 2002 - Make dolabels ignore errors from "- label in sync.", which happens when the revision of a file in the label is a delete. - Add the $IMPORTTAGSPOOF option (see test/config comments for details) === Release 1.3.2, February 5, 2002 - Reduce the memory footprint of bin/genmetadata. Previously, it was holding and sorting a complete copy of the metadata file "in-core" (as well as a copy of all of the RCS revision tags data!). This adds up quick, and some users saw genmetadata gobbling memory voraciously (and in some cases being running out, causing thrashing and/or process termination by the OS). genmetadata now keeps the metadata in a temp file, (sorting it in primary-key-sized chunks), and the revision tag information in a db-backed hash. - Fix the label handling so that _all_ perforce revisions based on the labeled cvs revision are included in the generated labels. Previously, one of the N "correct" Perforce revisions were being tagged (effectively, at random). This stems from the fact that lazy copying and branching are explicit in Perforce, but implicit in CVS. I.e., the "#1" revision in a new Perforce branch _appears_ to be a separate entity (identical to the revision from which it was branched. This means that to use the converted labels, it will be up to _you_ to remember what labels go with what branches: but that's the way it is in CVS, too. - A minor change in revmap to have a meaningful usage message, and properly handle the new rrevmap format. - dochanges correctly deletes revmap database files for either *.db or *.pag/*.dat style databases. === Release 1.3.3, February 9, 2002 - Yet another fix for label handling, when files which had been moved to the Attic/ in CVS have been readded. === Release 2.0b1, April 15, 2002 - This release contains a major overhaul for performance. The "dochanges" and "dolabels" stages now directly generate checkpoint-format Perforce metadata, and then replay it with "p4d -jr" in order to create the Perforce metadata; also, the generated metadata causes the RCS archives in the CVS repository being converted to be used directly. Thus, the time-consuming "replay" of Perforce operations is avoided. "genmetadata" and "genchanges" remain unaltered in this release. - The modification times on individual file revisions are now correctly preserved in the converted Perforce database (in previous versions, the changelist times correctly reflected the times of the original CVS submits, but individual file revisions times were set to the time of conversion). === Release 2.0b2, April 16, 2002 - Add $CHECKBIN config option to control whether RCS revisions are checked out to apply the perl -B operator as part of determining what revisions should be treated as binary in Perforce. - Make the list of file extentions to be treated as binary a config file item ($EXT). - Add $COPYIMPORT (and command line -c) to dochanges, to request that the CVS tree be copied into (rather than linked to from) $P4ROOT/depot/IMPORT. === Release 2.0b3, April 17, 2002 - dochanges now writes a record for the change counter! (Previously, it was left uninitialized, so the converted server would try to allocate change #1 again.) === Release 2.0b4, April 29, 2002 - dochanges now writes a record for the upgrade counter counter. it also checks the p4d version to verify we have 2002.1 or better, and does a p4d -xu if later than 2002.1. === Release 2.0b5, April 29, 2002 - handle binaries correctly. Since we're using imported RCS ,v files in the archive, we need to make binaries "binary +D" (or "xbinary +D"). Add a .gif to the tests to test this. === Release 2.0b6, May 1, 2002 - handle Attic files correctly - this required a change from the old version (and required touching genmetadata), since we now use the old RCS archive tree in place (or a copy thereof). - dolabels now closes the labels journal file explicitly. Previously, the subsequent "p4d -jr" could see premature eof to due buffered data, and the last bunch of labels in the dblbls file would not be converted. - fix a bug that broke conversion of files that had been deleted and then re-added in CVS; upon re-adding the file, it would be given revision #1 agian, instead of the next unused revision number. - added a couple of test cases for these. Many thanks to Fan Zhang of Numeritech for helping to wring out these problems! === Release 2.0, May 6, 2002 No functional change since 2.0b6; This becomes the first public release of cvs2p4 2. === Release 2.1, July 10, 2002 Change to handle RCS branch tags (so this tools can work with RCS (vs CVS) repositories, too!) RCS branch tags are those with an even number of "."s. === Release 2.2, July 18, 2002 You can now choose the Perforce filetype you'd like to have ALL of your text files imported with. As long as it's "text" or "ktext" :-). See the "$TEXTTYPE" configuration item. For "developers": Added a new test/getgood script to grab the test comparision files which have changed with a "runtest -gengood". Less tedium. Made the test/phone.gif,v a binary (-kb) RCS file, so we really test that. Fixed a bug in dochanges, wherupin the command to create a symlink to the RCS archives was being created in copy mode, provided the copy did not fail. Reported by John Wong (jw at unicom.com.au). Added a new config item "DEADSTATE", for saying what RCS state value means "deleted" in Perforce. It defaults correctly for CVS, so if you're converting real CVS, you can just leave this as-it. === Release 2.3.1, July 30, 2002 Now always run p4d with an explicit p4d -r, in case the user's environment has a P4ROOT set. genmetadata now reports both the CVS file archive path and the converted file path as it processes each file. This makes it easier to tell what RCS archive file caused a problem if the file cannot be parsed properly. The scripts now use the more modern tie()/untie() database interface, instead of the older dbmopen()/dbmclose() interface. The scripts assume the presence of the DB_File (Berkeley DB 1.x) module. This means that you are no longer left to the whim of the dbm support compiled into your perl. Certain dbm implementations, notable that in recent Solaris, caused problems. If you don't have DB_File support for your perl, you'll need to find the tie() statements in the bin/* scripts, and modify them to use some dbm package that you do have on your system. $P4_DEPOT can now be set to something that doesn't start with "//depot/", and things will work properly (a new depot specification will be created in the converted database). Added README notes about conversions that merge into an existing depot. === Release 2.3.2, September 3, 2002 Add $DEPOT config item, allowing RCS archives to appear as $P4ROOT/$DEPOT/$CVS_MODULE; I.e., with $DEPOT set to "depot/IMPORT", the RCS archive files will end up under "depot/IMPORT/<modulename>/<filepath>"; With $DEPOT set to "depot", they will be, simply, "depot/<modulename>/<filepath>". This makes it easier to make later merges of subsequently imported changes easier. Changed the database open code to allow setting the size of hash buckets (allows large conversions without running out of space for hash table pages). Handle label names with '#' or '@' by substituting "_hash_" and/or "_atsym_" into the converted label name. (Thanks to Marc Tooley of Perforce Support for supplying these imporvements). === Release 2.3.3, October 28, 2002 Changes to start coping with MKS Source Integrity conversions. This change allows genmetadata to simply ignore (and hence, to continue working!) the "ext" and "format" keywords that MKS Source Integrity apparently adds to the rcs repertiore. This could possibly be recoded to deal with arbitrary new keywords, but I don't want to go there now. Note that there *may* be other gotchas when attempting to use cvs2p4 to convert MKS SI repositories, which may be addressed by future changes to cvs2p4: 1. It appears that MKS may compress (gzip) binary ,v files, but *not* rename them to reflect this. Very odd. 2. It appears that MKS may allow a larger character set (than pure RCS) in legal symbolic names. I can probably fix cvs2p4 to deal with these pretty easily, but we should also consider whether any of the MKS names might be illegal in Perforce (and thus needs some sort of translation). Intrepid users setting out to use this tool to convert MKS into Perforce are encouraged to send problem reports to "opensource@perforce.com". === Release 2.3.4, November 21, 2002 This change corrects a problem introduced when cvs2p4 was given the ability to handle RCS branch tags. Essentially, when files (like the "datefile" test file) have RCS tags on the 1.1.1 branch, the scripts, which fake an "import" branch tag for this same revision, can get confused. This change forces the 1.1.1 branch to be known only as "import", always. === Release 2.3.5, August 26, 2003 - Fixes a spurious test failure when using the "test suite", presumably caused by changes in the diff algorithm (hence in p4 describe output) in Perforce 2002.2. The test will report success correctly for 2003.1 and earlier supported releases (see the README file for the current list of supported releases. - For added safety, the $DEPOT tree of imported RCS archives is made read-only after being copied, so as to prevent changes to any of the files containing the imported revisions. === Release 2.3.6, October 7, 2003 - Added "use bytes;" to all of the bin/* scripts, so that newer perls, which apparently do Unicode by default, won't. (I don't know whether any RCS's ever do Unicode, anyway. - Also, made a tweak to the test/runtest script, purported to be necessary for the tests to work correctly on some Solaris systems: 217c217 < my $p4d_vers = `$P4D -V | grep ^Rev`; --- > my $p4d_vers = `$P4D -V | grep '^Rev'`; rmg $ I don't know why this might be needed; some shell treating '^' as a metacharacter, I guess. (I seem to recall csh doing something with it, but isn't perl supposed to alway exec the "system's command shell", which, I thought was always /bin/sh on Unixes, but then, hey, it's Solaris, right? Anyway, it's benign. === Release 2.3.7 - Add the "HOW TO PACKAGE MODIFICATIONS" section to the README file. === Release 2.3.8, April 19, 2004 - Correctly handle symbol names that begin with a {num}. === Release 2.4, July 23, 2004 - fix dochanges so that <test_conv_dir>/depotmap is run correctly. - Improved rcstok function in genmetadata to better cope with binary files. Previous version was potentially taking a *very* long time... [Thanks to Robert Cowham, robert@vaccaperna.co.uk for this fix!] - Added two new template functions, "branch_for_tag()" and "rev_on_branch()". These allow dolabels to act much more intelligently about applying labels to the correct branch, only, and may result in a very significant savings in terms both of running time and disk space. For now, see the comments bin bin/dolabels (seach for "branch_for_tag") for an explanation of how to use this. When these function are NOT defined (as in the default as-shipped state), dolabels behavior will be the same as in previous releases. [Thanks to Kate Ebeneter and the iPod people for helpng to test this!] === Release 2.5, January 3, 2005 - The converter now handles the newly admitted (in Perforce 2004.2) special characters '#', '*', '%', and '@' (in client filesystem pathnames) properly. === Release 2.5.1, April 25, 2005 - This adds an (experimental) switch ($PureRCS in the config file) intended to aid in conversions from "pure RCS" repositories. By "Pure RCS", we mean that the repository was not have been created using CVS, and so lacks CVS branch tags. With $PureRCS = 1, the conversion will be done using, for each file, the numeric RCS branch names found in RCS. "Change aggregation", using the standard hueristic is still performed, and labels are imported as usual. The intent is that Perforce style branching can be established as a post-import operating, by do integrations based on labels known to correspond to a logical branch. === Release 2.5.2, April 25, 2005 - bugfix for the new $PureRCS feature... always use the RCS branch number for #1 revs, not the internal ...0.n number! === Release 2.5.3, April 26, 2005 - bugfix: 2.5 added support for '#' and '%' in filenames (to match newer Perforce servers, which now allow these). DUe to a bug, however, these characters were being effectively transposed in the result of the conversion. === Release 2.5.4, May 28, 2005 - Add bin/srcdiff, a tool for more easily comparing checked-out versions of a src from CVS and (posto-converto) Perforce. Helpful for easing worry in the minds of doubters in cvs2p4's fidelity. You can doubt *my* fidelity, but don't go doubting that of my tools! (no apostrophe). === Release 2.5.5, September 29, 2005 - The conversion now detects files where the default RCS branch is set to "1.1.1", and treats such files as if the "import" branch (1.1.1) were on the branch designated as "main" (usually, the trunk). This can be desirable for files which have been repeatedly "cvs imported" with multiple "vendor-drops", but no revisions have been checked in on the trunk after the first revision, AND you want the latests of the vendor drops (i.e., the head of the 1.1.1 branch) for the file. It's possible somebody might want the old behavior, but for now, I am going to leave the new behavior hardwired, as it may be more generally correct. - A bug affecting labels on files whose pathnames contain Perforce special characters has been fixed. === Release 2.6.0, June 2006 - Tweak the test/runtest script to sleep for 2 seconds after issuing the "p4 admin stop" command. I experience this on my (slower, I think) system at home - didn't used to be needed on my workstation at work. I have heard at least one other report of this biting somebody, so, alas, I will put the ungainly 2 second pauses in the "standard" configuration. With a little creativity, I think, it could be coded so as to "auto-detect" the fastest speed to go at, but I'm tight on time just now... - Yowsa! Eating my own dogfood at a real conversion just now, of a moderately large 5-year-old CVS repository, I feel your pain, oh ye who have suffered... shall we say: "label bloat"?. Both the dblabels (journal-format) file AND the final resultant db.label file get very large very quickly. In part, this is because of the "extra" label records that get written for branches consume space, I'm guessing. BUT the fact that we write a temp file (dblabels), and then replay it into the Perforce server, makes the conversion take up much more disk space. As a simple hack to provide immediate relief, I have rejiggered bin/dolabels such that the "dblables" data stream is written directly into an instance of "p4 -jr -". This saves the time and disk space involved writing the temp file, which is, normally, not reused after the conversion. Waste not, want not! - Achh! I have encountered a repository with "."s in the author: names, which, as I read the rcsfile(5) man page, is not supposed to be legal in identifiers... but now it is, as far as cvs2p4 is concerned. - bin/dolabels has been tweaked so as to allow a user-supplied "labelmap" file to give hints as to which labels really correspond to which branches. - Up till now, bin/genmetadata has used to use the "sort +1" form of specifying sort keys. This seems to be obsolescent; the sort in Fedora Core 3 seems to still support it, but the one in FC5 no longer does. I have switched to the "-k 2" form for this, and it seems to work fine on FC3 and FC5. [Seems OK on FreeBSD 4, too]. - bin/genmetadata now leaves two files, tags.txt and brtags.txt in the conversion directory, these being, simply, sorted lists of the "plain" tags and branch tags encountered during the scan of the CVS repository. These can be useful when you are faced with the task of building a mapping function between CVS tags and CVS branches, for use with the branch_for_tag() function in bin/dolabels. - the "test/runtest" script has been modified to add a 1-second sleep after starting the Perforce server before it will try to connect to it; without this, in some cases, I've seen intermittent failures where the server it not yet ready to listen. - bin/genmetadata's low level RCS parsing has been further reworked in order to gain acceptable performance on really big (10's or 100's Mb and up) files. This change switches form using perl stdio ("<HANDLE>") to using sysread(). There seems to be some benefit in general, but this is really important for those very large files. - bin/genmetadata can now infer tag->branch mappings heuristically in many cases; the mappings thus determined are recorded in the <convdir>/tags.txt file, which bin/dolabels now knows how to load and use. The overall effect is that now, by default, Perforce labels will be created for those CVS release tags for which a branch mapping was discovered heuristically. (And ONLY these!) Please see the new "RCS/CVS Tag to Perforce Label Conversion" section in the README file for more details. - $P4ROOT now defaults to being placed _inside_ the "conversion dir", making it easier to have multiple conversions around without collisions. - I believe that cvs2p4 now runs in a fixed memory footprint; all large data sets are now kept in DBM databases. If you see evidence otherwise please let me know! - In order to have a way of gauging bin/dolabels progress, it now prints out an input file line count every 10,000 lines. - In previous editions, with $COPYIMPORT=1, the copy of the CVS repository tree left under $P4ROOT had write directory turned off on directories in the copy. This prevented running the automated tests repeatedly, since the attempt to remove the existing $P4ROOT at the start of the second and subsequent runs would fail. Write permission is now left on in the newly copied directories. - Change from the not-so apropos Artistic lisence to the lithe MIT license. - Improved handling of vendor branch files, and the intricacies of whether vendor-dropped files have been localized or not. (See the note "VENDOR-DROP BRANCHES" in the README file). - Added $Depotmap{} feature for mapping top-level subdirs of CVS_MODULE into different depots. - OK, so now this is what I call NEWS!: Yesterday I noticed genmetadata - the one sweated to make fast with huge binaries with a few large revisions go fast - going real SLOW on a file with thousands of small text revisions. I gave up, patched rlog to have the one missing shred of info I needed, and reimplemented the whoel thing to just use rlog. Call this bullet bitten! I've verified that this version produces IDENTICAL results to to older perl-based parsing... in about half the aggregate time. Call this 3.0? :-) - There is now a facility allowing you to map top-level directories in the CVS being converted into multiple different Perforce depots. Basically, just add a line in the following format to the config file for each such mapping you want to establish: $Depotmap{"<topdir>"} = "<depot>"; All files with no such mapping in effect will be put into the default depot path defined by $DEPOT in the config file. - No question, this gets to be 3.0! :-). It now does special spoofing treatment for cvs import-ed files, to match the cvs behavior when multiple vendor drops have been taken, with no local modifications yet applied. Label generation has been fixed for these so that labels applied to, e.g., 1.1.1.2 revisions before any 1.2 is checked in will appear to be in *both* the "import" branch and the "main" branch, just the way they behave in CVS. This required very significant mucking in all stages of the pipeline! Much testing will ensue... - bin/srcdiff copes with relative paths now, like any sane person might assume it would. - The "vendor branch" names found in the RCS archives of files created by "cvs import" (i.e., the names of thags on "1.1.1"), are used as the vendor branch name, rather than "import". (The old behavior, of flattening them out into a single "import" branch, may be added back as an option in the future if it's missed at all) - There is now a special list you can use to declare files which should explicitly be treated as binaries. Please see the "BIN_PATHNAME" section at the end of the config file. - The test/config file has been cloned into test/config.test config.tmpl The former can have the required defaults for running the test, while the latter can provide a good place for users to start. -------------------------------------- $Id: //guest/richard_geiger/utils/cvs2p4/NEWS#66 $
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#84 | 7272 | Richard Geiger | Hey, let's make a release. | ||
#83 | 6301 | Richard Geiger |
These changes resulted from a recent customer conversion. A checkpoint, more or less. |
||
#82 | 5811 | Richard Geiger |
I believe this changes handles the problem encountered by Henry Grishashvili at IC Manage. |
||
#81 | 5706 | Richard Geiger | Makes branch specs now. | ||
#80 | 5705 | Richard Geiger |
Fix to integ history generation when USE_IMPORT_DEPOT and Depotmap are used.... |
||
#79 | 5676 | Richard Geiger |
Add $CONVUSER to set owner for label and depot specs create dby the conversion. |
||
#78 | 5675 | Richard Geiger | Make labels unlocked. | ||
#77 | 5668 | Richard Geiger |
REVRECS (mainly). cc: roger@icmanage.com, shiv@icmanage.com |
||
#76 | 5654 | Richard Geiger | Take care of David Birkhead's first two problem children :-) | ||
#75 | 5648 | Richard Geiger | Prep for rolling b6 release | ||
#74 | 5625 | Richard Geiger | Fixes to srcdiff for handling $ and/or \r in CVS pathnames. | ||
#73 | 5623 | Richard Geiger | $SPEC_DEPOT feature added. | ||
#72 | 5618 | Richard Geiger | Fixes labels with unmodified "cvs imported" files. | ||
#71 | 5615 | Richard Geiger | more depot mapping fixes. | ||
#70 | 5612 | Richard Geiger | Package 3.0b2 | ||
#69 | 5605 | Richard Geiger | Final tweaks for 3.0b1 | ||
#68 | 5599 | Richard Geiger | About to unleash 3.0 upon an unsuspecting world... | ||
#67 | 5597 | Richard Geiger |
Add news USE_IMPORT_DEPOT switch, to allow you to have cvs-import'ed revisions (the "vendor branch") end up in a different depot than locally-authored revisions. This should pretty much complete feature work in 3.0; |
||
#66 | 5575 | Richard Geiger | split config file. | ||
#65 | 5542 | Richard Geiger | checkpointing progress. | ||
#64 | 5531 | Richard Geiger |
A significant checkpoint commit, with new improved handling of import vendor branches, and revisions present in main by virtue of multiple vendor drops to a file with no local mods. test/runtest works, with new refernece results pretty well scrutinized. |
||
#63 | 5510 | Richard Geiger | Add the $Depotmap{"somecvstopdir"} = "//somep4depot"; facility | ||
#62 | 5494 | Richard Geiger |
Heck, it's turning into 3.0! This is a watershed commit - switch to rlog-based ,v parsing... |
||
#61 | 5490 | Richard Geiger | $Depotmap implemented. | ||
#60 | 5482 | Richard Geiger | More for 2.6.0... | ||
#59 | 5449 | Richard Geiger | gearing up for 2.6.0 release... | ||
#58 | 5443 | Richard Geiger | A note about dir perms and COPYIMPORT=1 | ||
#57 | 5442 | Richard Geiger |
A checkpoint commit on the way to a 2.6.0 release with the new IronPort inspired improvements. |
||
#56 | 5426 | Richard Geiger | Add compilation of the tags and branch tags encountered. | ||
#55 | 5392 | Richard Geiger | Adjust sort key specifier option to avoid the archiaic form. | ||
#54 | 5291 | Richard Geiger | Handle incomplete external label -> branch maps... | ||
#53 | 5272 | Richard Geiger | Allow "."s in author identifiers | ||
#52 | 5271 | Richard Geiger |
Sleep in runtest to make it work more reliably on fast machines; And write to "p4 -jr -" instead of "p4root/dblabels", to save space and maybe go faster... "for now, at least". |
||
#51 | 5143 | Richard Geiger | prep for 2.5.5 | ||
#50 | 4983 | Richard Geiger |
Package 2.5.4 - add srcdiff. Clears the integration air. |
||
#49 | 4921 | Richard Geiger | Note about 2.5.3 bugfix. | ||
#48 | 4918 | Richard Geiger | extry extry read all about it! | ||
#47 | 4914 | Richard Geiger | Adds PureRCS switch. | ||
#46 | 4732 | Richard Geiger | Changes to support special characters # @ % * (for release 2.5) | ||
#45 | 4352 | Richard Geiger | for the 2.4 release. | ||
#44 | 4296 | Richard Geiger |
Integrate Robert Cowham's fox for the "binary slows"... In Cowham we Trust! |
||
#43 | 4276 | Richard Geiger | fix dochanges so that <test_conv_dir>/depotmap is run correctly. | ||
#42 | 4273 | Richard Geiger | Package 2.3.8. | ||
#41 | 4271 | Richard Geiger | About 2.3.8. | ||
#40 | 3708 | Richard Geiger | Changes for 2.3.6 | ||
#39 | 3597 | Richard Geiger |
The diff output change actually happened with 2002.2. This reflects that. |
||
#38 | 3594 | Richard Geiger | Changes for 2.3.5 | ||
#37 | 2376 | Richard Geiger | First show at fixing RCS/"import" confusion... | ||
#36 | 2284 | Richard Geiger |
Package 2.3.3. Changes to begin handling MKS Source Integrity repositories. Today MKS; Tomorrow... ClearCase! (well). |
||
#35 | 2061 | Richard Geiger |
changes for 2.3.2: - can adjust db hash bucket size; - Add $DEPOT config variable - Handle labels with '#' or '@' |
||
#34 | 1987 | Richard Geiger | Changes for 2.3.1 | ||
#33 | 1977 | Richard Geiger | Explicit p4d -r | ||
#32 | 1968 | Richard Geiger | Make it 2.2. | ||
#31 | 1967 | Richard Geiger | Add new config item "DEADSTATE". | ||
#30 | 1965 | Richard Geiger | Fix bug where link was being made if $COPY succeedes. | ||
#29 | 1964 | Richard Geiger | Add $TEXTTYPE and surrounding accoutrements. | ||
#28 | 1942 | Richard Geiger |
Change to handle RCS branch tags (so this tools can work with RCS (vs CVS) repositories, too!) RCS branch tags are those with an even number of "."s. |
||
#27 | 1782 | Richard Geiger | Changes to call this 2.0 | ||
#26 | 1781 | Richard Geiger |
This change reintegrates cvs2p4 2.0 developement work (through 2.0b6) back into my mainline development. |
||
#25 | 1437 | Richard Geiger | Fix for 1.3.3 - labels on revived Attic files. | ||
#24 | 1408 | Richard Geiger | Put the date on the release in NEWS. | ||
#23 | 1407 | Richard Geiger |
=== Release 1.3.2 - Reduce the memory footprint of bin/genmetadata. Previously, it was holding and sorting a complete copy of the metadata file "in-core" (as well as a copy of all of the RCS revision tags data!). This adds up quick, and some users saw genmetadata gobbling memory voraciously (and in some cases being running out, causing thrashing and/or process termination by the OS). genmetadata now keeps the metadata in a temp file, (sorting it in primary-key-sized chunks), and the revision tag information in a db-backed hash. - Fix the label handling so that _all_ perforce revisions based on the labeled cvs revision are included in the generated labels. Previously, one of the N "correct" Perforce revisions were being tagged (effectively, at random). This stems from the fact that lazy copying and branching are explicit in Perforce, but implicit in CVS. I.e., the "#1" revision in a new Perforce branch _appears_ to be a separate entity (identical to the revision from which it was branched. This means that to use the converted labels, it will be up to _you_ to remember what labels go with what branches: but that's the way it is in CVS, too. - A minor change in revmap to have a meaningful usage message, and properly handle the new rrevmap format. - dochanges correctly deletes revmap database files for either *.db or *.pag/*.dat style databases. |
||
#22 | 1388 | Richard Geiger | Put genmetadata on a memory diet. | ||
#21 | 1206 | Richard Geiger |
Genericize the "p4 labels" test case, and beef up the comments describing $TRUNKLINE in the config file a bit. |
||
#20 | 1204 | Richard Geiger | Package 1.3.1 | ||
#19 | 1203 | Richard Geiger |
Fix bug where dolables couldn't cope with tag in which the revision for a file was a delete Add the IMPORTTAGSPOOF switch. |
||
#18 | 1185 | Richard Geiger |
Changes for 1.3 (Labels!) |
||
#17 | 1031 | Richard Geiger | Changes for 1.2.17; fix one-letter id internal error bug. | ||
#16 | 823 | Richard Geiger | Add assert for dup d/f,v d/Attic/f,v (like "Giao Phan" <giao@seven.com> saw) | ||
#15 | 791 | Richard Geiger |
Update for a new release; my change-of-venue noted; desensitized to conflicting P4CONFIG. |
||
#14 | 474 | Richard Geiger | Reject files with bad characters per perforce filenaming conventions. | ||
#13 | 459 | Richard Geiger |
Now performs metadata sort using a sort routine coded directly in perl, rather than by using the host system's "sort" command. (Differences in "sort" behavior from one host to another had been observed to cause irregularities). |
||
#12 | 421 | Richard Geiger | Fix to the fix by Thomas Quinot. | ||
#11 | 416 | Richard Geiger | Pull in Thomas Quinot <quinot@inf.enst.fr>'s UTC bugfix, for 1.2.12. | ||
#10 | 398 | Richard Geiger | Skip (and note) ,v files with nonprintable characters in the fileame. | ||
#9 | 392 | Richard Geiger | CHanges for 1.2.10 (tolerate empty RCS file) | ||
#8 | 343 | Richard Geiger | 1.2.9 | ||
#7 | 331 | Richard Geiger |
1.2.8 - handle cr/lf in ,v's ... Yuck |
||
#6 | 305 | Richard Geiger | Changes for 1.2.7 | ||
#5 | 251 | Richard Geiger | Changes for 1.2.6 - metacharacters in filenames. | ||
#4 | 240 | Richard Geiger |
Version 1.2.5, to account for post-1999 RCS behavior. (Courtesy of David Simon, Goldman Sachs) |
||
#3 | 228 | Richard Geiger |
Changes for 1.2.4 - recognize alternative "p4 files" message for files not present in the depot. |
||
#2 | 179 | Richard Geiger | CHanges for 1.2.3 | ||
#1 | 130 | Richard Geiger |
CVS-to-Perforce converter. This is release 1.2.2 (first submit to the Perforce Public Depot) |