Mercurial > hg
view tests/test-convert.out @ 5441:71e7c86adcb7
convert: refactor sink initialisation, to remove hardcoding of hg
We also introduce options to explicitly set the source and destination
repository types.
Improve testing of corner cases a little.
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Wed, 10 Oct 2007 15:42:00 -0700 |
parents | cb100605a516 |
children | 247af577fe29 |
line wrap: on
line source
hg convert [OPTION]... SOURCE [DEST [MAPFILE]] Convert a foreign SCM repository to a Mercurial one. Accepted source formats: - CVS - Darcs - git - Subversion Accepted destination formats: - Mercurial 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 <revmapfile> isn't given, it will be put in a default location (<dest>/.hg/shamap by default). The <revmapfile> 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. 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 and directories. Comment lines start with '#'. Each line can contain one of the following directives: include path/to/file exclude path/to/file rename from/file to/file The 'include' directive causes a file, or all files under a directory, to be included in the destination repository. 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. options: -A --authors username mapping filename -d --dest-type destination repository type --filemap remap file names using contents of file -r --rev import up to target revision REV -s --source-type source repository type --datesort try to sort changesets by date use "hg -v help convert" to show global options adding a assuming destination a-hg initializing destination a-hg repository scanning source... sorting... converting... 4 a 3 b 2 c 1 d 0 e pulling from ../a searching for changes no changes found % should fail initializing destination bogusfile repository abort: cannot create new bundle repository % should fail abort: Permission denied: bogusdir % should succeed initializing destination bogusdir repository scanning source... sorting... converting... 4 a 3 b 2 c 1 d 0 e