--- a/hgext/convert/__init__.py Sat Apr 04 23:16:32 2009 +0200
+++ b/hgext/convert/__init__.py Sat Apr 04 23:16:55 2009 +0200
@@ -32,28 +32,28 @@
- Mercurial [hg]
- Subversion [svn] (history on branches is not preserved)
- If no revision is given, all revisions will be converted. Otherwise,
- convert will only import up to the named revision (given in a format
- understood by the source).
+ If no revision is given, all revisions will be converted.
+ Otherwise, convert will only import up to the named revision
+ (given in a format understood by the source).
If no destination directory name is specified, it defaults to the
basename of the source with '-hg' appended. If the destination
repository doesn't exist, it will be created.
If <REVMAP> isn't given, it will be put in a default location
- (<dest>/.hg/shamap by default). The <REVMAP> is a simple text
- file that maps each source commit ID to the destination ID for
- that revision, like so:
+ (<dest>/.hg/shamap by default). The <REVMAP> is a simple text file
+ that maps each source commit ID to the destination ID for that
+ revision, like so:
<source ID> <destination ID>
- If the file doesn't exist, it's automatically created. It's updated
- on each commit copied, so convert-repo can be interrupted and can
- be run repeatedly to copy new commits.
+ If the file doesn't exist, it's automatically created. It's
+ updated on each commit copied, so convert-repo can be interrupted
+ and can be run repeatedly to copy new commits.
- The [username mapping] file is a simple text file that maps each source
- commit author to a destination commit author. It is handy for source SCMs
- that use unix logins to identify authors (eg: CVS). One line per author
- mapping and the line format is:
+ The [username mapping] file is a simple text file that maps each
+ source commit author to a destination commit author. It is handy
+ for source SCMs that use unix logins to identify authors (eg:
+ CVS). One line per author mapping and the line format is:
srcauthor=whatever string you want
The filemap is a file that allows filtering and remapping of files
@@ -70,20 +70,20 @@
directory, to be included in the destination repository, and the
exclusion of all other files and dirs not explicitely included.
The 'exclude' directive causes files or directories to be omitted.
- The 'rename' directive renames a file or directory. To rename from a
- subdirectory into the root of the repository, use '.' as the path to
- rename to.
+ The 'rename' directive renames a file or directory. To rename from
+ a subdirectory into the root of the repository, use '.' as the
+ path to rename to.
The splicemap is a file that allows insertion of synthetic
history, letting you specify the parents of a revision. This is
useful if you want to e.g. give a Subversion merge two parents, or
graft two disconnected series of history together. Each entry
contains a key, followed by a space, followed by one or two
- comma-separated values. The key is the revision ID in the
- source revision control system whose parents should be modified
- (same format as a key in .hg/shamap). The values are the revision
- IDs (in either the source or destination revision control system)
- that should be used as the new parents for that node.
+ comma-separated values. The key is the revision ID in the source
+ revision control system whose parents should be modified (same
+ format as a key in .hg/shamap). The values are the revision IDs
+ (in either the source or destination revision control system) that
+ should be used as the new parents for that node.
Mercurial Source
-----------------
@@ -93,7 +93,8 @@
repositories with missing revlogs, by converting from and to
Mercurial.
--config convert.hg.saverev=False (boolean)
- store original revision ID in changeset (forces target IDs to change)
+ store original revision ID in changeset (forces target IDs to
+ change)
--config convert.hg.startrev=0 (hg revision identifier)
convert start revision and its descendants
@@ -102,11 +103,11 @@
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
+ 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.
@@ -123,33 +124,36 @@
--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.
+ 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.
+ 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.
+ 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 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.
+ 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
-----------------
Subversion source detects classical trunk/branches/tags layouts.
By default, the supplied "svn://repo/path/" source URL is
- converted as a single branch. If "svn://repo/path/trunk" exists
- it replaces the default branch. If "svn://repo/path/branches"
- exists, its subdirectories are listed as possible branches. If
+ converted as a single branch. If "svn://repo/path/trunk" exists it
+ replaces the default branch. If "svn://repo/path/branches" exists,
+ its subdirectories are listed as possible branches. If
"svn://repo/path/tags" exists, it is looked for tags referencing
converted branches. Default "trunk", "branches" and "tags" values
can be overriden with following options. Set them to paths
@@ -173,14 +177,15 @@
Perforce Source
---------------
- The Perforce (P4) importer can be given a p4 depot path or a client
- specification as source. It will convert all files in the source to
- a flat Mercurial repository, ignoring labels, branches and integrations.
- Note that when a depot path is given you then usually should specify a
- target directory, because otherwise the target may be named ...-hg.
+ The Perforce (P4) importer can be given a p4 depot path or a
+ client specification as source. It will convert all files in the
+ source to a flat Mercurial repository, ignoring labels, branches
+ and integrations. Note that when a depot path is given you then
+ usually should specify a target directory, because otherwise the
+ target may be named ...-hg.
- It is possible to limit the amount of source history to be converted
- by specifying an initial Perforce revision.
+ It is possible to limit the amount of source history to be
+ converted by specifying an initial Perforce revision.
--config convert.p4.startrev=0 (perforce changelist number)
specify initial Perforce revision.
@@ -205,12 +210,14 @@
def debugcvsps(ui, *args, **opts):
'''create changeset information from CVS
- This command is intended as a debugging tool for the CVS to Mercurial
- converter, and can be used as a direct replacement for cvsps.
+ This command is intended as a debugging tool for the CVS to
+ Mercurial converter, and can be used as a direct replacement for
+ cvsps.
- Hg debugcvsps reads the CVS rlog for current directory (or any named
- directory) in the CVS repository, and converts the log to a series of
- changesets based on matching commit log entries and dates.'''
+ Hg debugcvsps reads the CVS rlog for current directory (or any
+ named directory) in the CVS repository, and converts the log to a
+ series of changesets based on matching commit log entries and
+ dates.'''
return cvsps.debugcvsps(ui, *args, **opts)
commands.norepo += " convert debugsvnlog debugcvsps"
--- a/tests/test-convert.out Sat Apr 04 23:16:32 2009 +0200
+++ b/tests/test-convert.out Sat Apr 04 23:16:55 2009 +0200
@@ -17,28 +17,28 @@
- Mercurial [hg]
- Subversion [svn] (history on branches is not preserved)
- If no revision is given, all revisions will be converted. Otherwise,
- convert will only import up to the named revision (given in a format
- understood by the source).
+ If no revision is given, all revisions will be converted.
+ Otherwise, convert will only import up to the named revision
+ (given in a format understood by the source).
If no destination directory name is specified, it defaults to the
basename of the source with '-hg' appended. If the destination
repository doesn't exist, it will be created.
If <REVMAP> isn't given, it will be put in a default location
- (<dest>/.hg/shamap by default). The <REVMAP> is a simple text
- file that maps each source commit ID to the destination ID for
- that revision, like so:
+ (<dest>/.hg/shamap by default). The <REVMAP> is a simple text file
+ that maps each source commit ID to the destination ID for that
+ revision, like so:
<source ID> <destination ID>
- If the file doesn't exist, it's automatically created. It's updated
- on each commit copied, so convert-repo can be interrupted and can
- be run repeatedly to copy new commits.
+ If the file doesn't exist, it's automatically created. It's
+ updated on each commit copied, so convert-repo can be interrupted
+ and can be run repeatedly to copy new commits.
- The [username mapping] file is a simple text file that maps each source
- commit author to a destination commit author. It is handy for source SCMs
- that use unix logins to identify authors (eg: CVS). One line per author
- mapping and the line format is:
+ The [username mapping] file is a simple text file that maps each
+ source commit author to a destination commit author. It is handy
+ for source SCMs that use unix logins to identify authors (eg:
+ CVS). One line per author mapping and the line format is:
srcauthor=whatever string you want
The filemap is a file that allows filtering and remapping of files
@@ -55,20 +55,20 @@
directory, to be included in the destination repository, and the
exclusion of all other files and dirs not explicitely included.
The 'exclude' directive causes files or directories to be omitted.
- The 'rename' directive renames a file or directory. To rename from a
- subdirectory into the root of the repository, use '.' as the path to
- rename to.
+ The 'rename' directive renames a file or directory. To rename from
+ a subdirectory into the root of the repository, use '.' as the
+ path to rename to.
The splicemap is a file that allows insertion of synthetic
history, letting you specify the parents of a revision. This is
useful if you want to e.g. give a Subversion merge two parents, or
graft two disconnected series of history together. Each entry
contains a key, followed by a space, followed by one or two
- comma-separated values. The key is the revision ID in the
- source revision control system whose parents should be modified
- (same format as a key in .hg/shamap). The values are the revision
- IDs (in either the source or destination revision control system)
- that should be used as the new parents for that node.
+ comma-separated values. The key is the revision ID in the source
+ revision control system whose parents should be modified (same
+ format as a key in .hg/shamap). The values are the revision IDs
+ (in either the source or destination revision control system) that
+ should be used as the new parents for that node.
Mercurial Source
-----------------
@@ -78,7 +78,8 @@
repositories with missing revlogs, by converting from and to
Mercurial.
--config convert.hg.saverev=False (boolean)
- store original revision ID in changeset (forces target IDs to change)
+ store original revision ID in changeset (forces target IDs to
+ change)
--config convert.hg.startrev=0 (hg revision identifier)
convert start revision and its descendants
@@ -87,11 +88,11 @@
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
+ 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.
@@ -108,33 +109,36 @@
--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.
+ 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.
+ 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.
+ 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 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.
+ 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
-----------------
Subversion source detects classical trunk/branches/tags layouts.
By default, the supplied "svn://repo/path/" source URL is
- converted as a single branch. If "svn://repo/path/trunk" exists
- it replaces the default branch. If "svn://repo/path/branches"
- exists, its subdirectories are listed as possible branches. If
+ converted as a single branch. If "svn://repo/path/trunk" exists it
+ replaces the default branch. If "svn://repo/path/branches" exists,
+ its subdirectories are listed as possible branches. If
"svn://repo/path/tags" exists, it is looked for tags referencing
converted branches. Default "trunk", "branches" and "tags" values
can be overriden with following options. Set them to paths
@@ -158,14 +162,15 @@
Perforce Source
---------------
- The Perforce (P4) importer can be given a p4 depot path or a client
- specification as source. It will convert all files in the source to
- a flat Mercurial repository, ignoring labels, branches and integrations.
- Note that when a depot path is given you then usually should specify a
- target directory, because otherwise the target may be named ...-hg.
+ The Perforce (P4) importer can be given a p4 depot path or a
+ client specification as source. It will convert all files in the
+ source to a flat Mercurial repository, ignoring labels, branches
+ and integrations. Note that when a depot path is given you then
+ usually should specify a target directory, because otherwise the
+ target may be named ...-hg.
- It is possible to limit the amount of source history to be converted
- by specifying an initial Perforce revision.
+ It is possible to limit the amount of source history to be
+ converted by specifying an initial Perforce revision.
--config convert.p4.startrev=0 (perforce changelist number)
specify initial Perforce revision.