- README for vcp - Version CoPy
- vcp (and the Perl module VCP.pm) is a system for copying resources under
- version control between repositories. CVS, p4 and VSS repositories are
- currently supported.
- vcp can filter, rearrange repositories, and alter metadata during a
- transfer. These capabilities are used to handle conversion details like
- different branching models and legal character sets between various
- repositories.
- VCP Status
- ----------
- This code is in late beta state. It current supports CVS, Perforce's
- p4, VSS and miscellaneous developer-only sources and destinations. It
- currently runs on Unix-like and Windows-like platforms.
- vcp is known to moderately complex repositories back and forth between
- all sources and destinations like CVS, p4, and VSS and there is a
- third-party Subversion destination driver available (we'd integrate and
- support that, but there needs to be a source driver for balance).
- Please direct all questions and issues to revml@perforce.com if
- possible, or to barries@perforce.com if privacy is required. Many
- thanks!
- VCP does handle branch creation, though not repeated integrations
- between files (a Perforce p4 feature).
- VSS Issues
- ----------
- We do expect various issues with VSS source and destination repositories
- due to the, um, freedom that VSS allows its users. There are ways to
- "paint yourself in to a corner" in VSS using recommended best practices
- like sharing and pinning.
- VSS also has also accumulated a large base of anecdotal evidence (see
- google) having to do with corruption and we've found that much
- corruption isn't noticed until VCP is used to try to read every revision
- in a repository. For best results, run the VSS repair utilities until
- no errors are reported, upgrade to the most recent VSS and re-run the
- repair utilities for the new version (just to be sure).
- COPYRIGHT & LICENSE
- Development of this utility is partially funded by Perforce. All
- software so funded is Copyright 2004, Perforce Software, Inc, and
- licensed according to the file LICENSE distributed with this package.
- Contributed portions not assigned to Perforce are Copyright to their
- respective creators. Such contributed code is clearly marked and
- in the source code.
- INSTALLATION
- For end users, the easiest approach is to use one of the prebuilt
- releases such as "vcp.exe", "vcp-rh8", "vcp-solaris", etc.
- Developers should see the INSTALL file for more information.
- REQUIREMENTS
- If you want to use the p4 I/O features, v99.2 or later is required (vcp uses
- the filelog -m option). Not sure about cvs or VSS versions.
- THINGS TO READ
- The vcp program carries it's own documentation in it. The main program
- documentation can be read by doing a
- vcp help
- or
- perldoc path/to/vcp
- . If you are going source spelunking, a reasonable reading list might
- be:
- bin/vcp
- VCP
- VCP::Plugin
- VCP::Source
- VCP::Dest
- VCP::Rev
- VCP::Revs
- VCP::Source::*
- VCP::Dest::*
- revml.dtd
- RevML::Doctype
- You may browse the source in Perforce's online source repository
- starting at
- http://public.perforce.com/public/index.html
- I'll update this file with better links when I get the project checked
- in.
- SUPPORT
- 1. Please read the documentation. It's not as good as it will be, but
- it'll keep you from distracting the author(s) with trivial questions
- when they should be working on debugging and features.
- 2. Where the documentation is lacking, get us to clarify it.
- 3. Send all queries, gripes, and kudos to revml@perforce.com . Please
- feel free to join the list by sending a message to
- revml-subscribe@perforce.com
- or by typing & clicking away at
- http://maillist.perforce.com/mailman/listinfo/revml
- CONTRIBUTING
- Lots of work can be done at all levels. We'd love to have you help!
- Some areas we need help in are:
- 1) Bug fixes, extensions
- There are bugs to squash and minor features to add. You'll know them
- when you trip over them :-). Feel free to brainstorm on-list.
- The recommended way to submit a patch is to use
- diff -Naur old_root/ new_root/
- and send the patch to the list in the body of the message or as a
- plain text (ie non-uuencoded) attachment. PLEASE don't cut and paste
- patches in your GUI, that screws up whitespace and sometimes worse.
- Please try to patch the most recent version in the repository, but
- don't feel that you have to.
- 2) Drivers, drivers, drivers
- We really need drivers for lots of other RCSs. Most notable are SourceSafe,
- SCCS, and bitkeeper. No drivers that are fairly functional will be
- turned down, though you should ask on-list if anyone's working on one
- so you can combine efforts if possible and avoid duplicated/wasted
- effort.
- 3) Major features
- The most major feature on the TODO list is branching. It's still on the
- TODO list because it's hard to map between the various branching
- metaphors, or other metaphors (like bitkeeper's LODs) out there.
- 4) Other uses for RevML
- RevML is not just for vcp. It's a farily generic doctype that should be
- useful for other things. Feel free to find other uses for it.
- Many thanks,
- Barrie Slaymaker
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 6118 | Dimitry Andric | Integ from //public/revml to //guest/dimitry_andric/revml/main. | 17 years ago | |
//guest/perforce_software/revml/README | |||||
#7 | 4503 | Barrie Slaymaker | - Remove references to CPAN, update README and INSTALL | 21 years ago | |
#6 | 628 | Barrie Slaymaker | Cleaned up POD in bin/vcp, added BSD-style license. | 24 years ago | |
#5 | 615 | Barrie Slaymaker | Detect p4d <= 99.2 and skip tests. Fix a use strict problem. Both reported by... Nick Ing-Simmons. « |
24 years ago | |
#4 | 613 | Barrie Slaymaker | Tweak README and documentation. | 24 years ago | |
#3 | 608 | Barrie Slaymaker | Lots of changes to get vcp to install better, now up to 0.066. Many thanks to Matthew Att...away for testing & suggestions. « |
24 years ago | |
#2 | 468 | Barrie Slaymaker | - VCP::Dest::p4 now does change number aggregation based on the comment field chan...ging or whenever a new revision of a file with unsubmitted changes shows up on the input stream. Since revisions of files are normally sorted in time order, this should work in a number of cases. I'm sure we'll need to generalize it, perhaps with a time thresholding function. - t/90cvs.t now tests cvs->p4 replication. - VCP::Dest::p4 now doesn't try to `p4 submit` when no changes are pending. - VCP::Rev now prevents the same label from being applied twice to a revision. This was occuring because the "r_1"-style label that gets added to a target revision by VCP::Dest::p4 could duplicate a label "r_1" that happened to already be on a revision. - Added t/00rev.t, the beginnings of a test suite for VCP::Rev. - Tweaked bin/gentrevml to comment revisions with their change number instead of using a unique comment for every revision for non-p4 t/test-*-in-0.revml files. This was necessary to test cvs->p4 functionality. « |
24 years ago | |
#1 | 467 | Barrie Slaymaker | Version 0.01, initial checkin in perforce public depot. | 24 years ago |