[PATCH] convert: add documentation for CVS source
Frank Kingswood
frank at kingswood-consulting.co.uk
Tue Jun 24 18:34:10 UTC 2008
# HG changeset patch
# User Frank Kingswood <frank at kingswood-consulting.co.uk>
# Date 1214332270 -3600
# Node ID 365a8da5bd71e90d4ef81ceb3ff67f1abbde9860
# Parent 855851eae70f053030c85c59463c064c1f4773fb
convert: add documentation for CVS source
diff -r 855851eae70f -r 365a8da5bd71 hgext/convert/__init__.py
--- a/hgext/convert/__init__.py Tue Jun 24 10:18:03 2008 +0200
+++ b/hgext/convert/__init__.py Tue Jun 24 19:31:10 2008 +0100
@@ -86,6 +86,56 @@
--config convert.hg.saverev=True (boolean)
allow target to preserve source revision ID
+ CVS Source
+ ----------
+
+ CVS source will use a sandbox (i.e. a checked-out copy) from CVS
+ to indicate the starting point of what will be converted. Direct
+ access to the repository files is not needed, unless of course
+ the repository is :local:. The conversion uses the top level
+ directory in the sandbox to find the CVS repository, and then uses
+ CVS rlog commands to find files to convert. This means that unless
+ a filemap is given, all files under the starting directory will be
+ converted, and that any directory reorganisation in the CVS
+ sandbox is ignored.
+
+ Because CVS does not have changesets, it is necessary to collect
+ individual commits to CVS and merge them into changesets. CVS source
+ can use the external 'cvsps' program (this is a legacy option and may
+ be removed in future) or use its internal changeset merging code.
+ External cvsps is default, and options may be passed to it by setting
+ --config convert.cvsps='cvsps -A -u --cvs-direct -q'
+ The options shown are the defaults.
+
+ Internal cvsps is selected by setting
+ --config convert.cvsps=builtin
+ and has a few more configurable options:
+ --config convert.cvsps.fuzz=60 (integer)
+ Specify the maximum time (in seconds) that is allowed between
+ commits with identical user and log message in a single
+ changeset. When very large files were checked in as part
+ of a changeset then the default may not be long enough.
+ --config convert.cvsps.mergeto='{{mergetobranch ([-\w]+)}}'
+ Specify a regular expression to which commit log messages are
+ matched. If a match occurs, then the conversion process will
+ insert a dummy revision merging the branch on which this log
+ message occurs to the branch indicated in the regex.
+ --config convert.cvsps.mergefrom='{{mergefrombranch ([-\w]+)}}'
+ Specify a regular expression to which commit log messages are
+ matched. If a match occurs, then the conversion process will
+ add the most recent revision on the branch indicated in the
+ regex as the second parent of the changeset.
+
+ The mergeto and mergefrom configuration options can be used to
+ automatically import merges from CVS if they have been marked up in
+ the CVS commit log messages. The parenthesised group of the regular
+ expression is used as the branch name (or HEAD for the trunk) to merge
+ to or from.
+
+ The hgext/convert/cvsps wrapper script allows the builtin changeset
+ merging code to be run without doing a conversion. Its parameters and
+ output are similar to that of cvsps 2.1.
+
Subversion Source
-----------------
More information about the Mercurial-devel
mailing list