0
votes

I ran hg convert -A AUTHORS_FILE repo on a subversion repository. If I run hg log in the newly created mercurial repository I only get the last 8 changes in the subversion's revision history.

Is there a way to convert my subversion repository and maintain the entire log? I know this isn't a lot of information, I'm not sure what would be helpful debugging info in this case. Ask me and I will try to find the info.

EDIT: The subversion repository in question contains multiple projects (this does not translate well to mercurial), but I only wanted one project. The solution was something along the lines of:

hg --config convert.svn.trunk=project/trunk --config convert.svn.branches=project/branches --config convert.svn.tags=project/tags convert file:///net/vol1/svn

convert.svn.* indicates where the trunk, branches, and tags of the project are to the convert tool. /net/vol1/svn is where the svn repository is located.

1

1 Answers

0
votes

I think and expect, that you have fundamental layout change in revision, before each you can't get history converted - if you converted from repo-root and|or doesn't define tree-relatedsvn.* options in .hgrc

How you can debug your case

  • Check with svn-client log of your repository (svn URL-OF-REPO-ROOT -v will show you files, affected by revision with full path) - if layout was changed, you have to convert source repo in two or more steps, convert only range with permanent layout at once with correct options

svn.trunk

Relative path to the trunk (default: "trunk")

svn.branches

Relative path to tree of branches (default: "branches")`

svn.tags

Relative path to tree of tags (default: "tags")

(in command line) and --rev option

  • For the same job (checking layout) you can use svn ls URL@PEG-REV or recursively over tree with -R
  • you can convert Subversion repository to Mercurial repo transparently, using HGSubversion extension (you clone Subversion repo, can pull|push with it, but cloned local repo is Mercurial repository)