<p>Are there any <strong>tools</strong> to facilitate a migration from <a href="http://www.sourcegear.com/vault/index.html" rel="noreferrer">Sourcegear's Vault</a> to <a href="http://subversion.tigris.org/" rel="noreferrer">Subversion</a>?</p>

<p>I'd really prefer an existing tool or project (I'll buy!).</p>

<p><strong>Requirements:</strong></p>

<ol>
<li>One-time migration only</li>
<li>Full history with comments</li>
</ol>

<p><strong>Optional:</strong></p>

<ol>
<li>Some support for labels/branches/tags</li>
<li>Relatively speedy. It can take hours but not days.</li>
<li>Cost if available</li>
</ol>

<p>Bonus points if you can share personal experience related to this process.</p>

<hr>

<p>One of the reasons I'd like to do this is because we have lots of projects spread between Vault and Subversion (we're finally away from sourcesafe). It'd be helpful in some situations to be able to consolidate a particular customer's repos to SVN.</p>

<p>Additionally, SVN is better supported among third party tools. For example, <a href="http://hudson.dev.java.net/" rel="noreferrer">Hudson</a> and <a href="http://www.redmine.org/" rel="noreferrer">Redmine</a>.</p>

<p>Again, though: we're not abandoning vault altogether.</p>

[{'answer_id': 57634, 'author': 'Brettski', 'author_id': 5836, 'author_profile': 'https://Stackoverflow.com/users/5836', 'pm_score': 2, 'selected': False, 'text': '<p>I never found an easy way to convert from Vault to svn.  Basically we took our latest branches and trunk and started new in svn.  Honestly I went two or three labels back, just because.  I kept the vault db around for six months and we never needed to go back to it for data.  So I assume you want to carry forward your history for a bug tracker tie-in; at this same time we transferred our outstanding bug list to a new tracker, so that definitely made things more convenient.  If we where staying with the same bug tracker, I would think we would of started a new instance of it for the new repo.  Good Luck!</p>\n\n<p>Brett</p>\n'}, {'answer_id': 57932, 'author': 'Joshua', 'author_id': 6013, 'author_profile': 'https://Stackoverflow.com/users/6013', 'pm_score': 3, 'selected': False, 'text': '<p>If you want full version history, you may want to just write a script that checks out each version from vault and checks it in with the comments to Subversion.</p>\n\n<p><a href="http://www.selenic.com/mercurial/wiki/index.cgi/GenericConversion" rel="nofollow noreferrer">https://www.mercurial-scm.org/wiki/GenericConversion</a> is a good example</p>\n\n<p>Based on the documentation that I saw on the Vault website, look into the command line GETVERSION.</p>\n\n<p>Use your favorite scripting language...\nImplement the following process:</p>\n\n<ol>\n<li>Check out a version from vault.</li>\n<li>Get the commit comments for the changeset.</li>\n<li>Add/remove the files to the SVN repo</li>\n<li>Commit files using the commit comments</li>\n<li>Go back to step one with the next version</li>\n</ol>\n'}, {'answer_id': 756458, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>Free.  The vault user license costs have tripled since we went to it.</p>\n'}, {'answer_id': 758141, 'author': 'Community', 'author_id': -1, 'author_profile': 'https://Stackoverflow.com/users/-1', 'pm_score': 0, 'selected': False, 'text': '<p>We are considering migration as well.  One reason is cost, but another reason is that Vault does not use valid xml (or any) for its commit comments so special characters fail our automated CCNet build system (e.g. a bullet character is one of them, and specifically causes us a problem).  A way around this has been to A) ask our developers to not use these special, "invalid" characters (characters outside the range of ASCII 32 - 126) and B) to manually go in and re-commit code with a "valid" comment.  This may not seem like a big deal, but not allowing these characters prevents easy copy/paste of bug and other comments into the commit comment.  This slows people down and anything that hinders flow and productivity and creates frustration needs to be reduced or removed. </p>\n\n<p>From my research, it seems that there is no way to directly migrate from Vault to SVN.  Perhaps it is possible to use another version control system as a migration middle step:\n    Vault    -->    OtherSourceControlProduct    -->    SVN</p>\n\n<p>...but I think that we would either script the commits (as Joshua suggested at the beginning of this thread) or - which more likely - just commit the last few revisions and leave the Vault repos around a while for history, etc.  This actually gives us a a good opportunity to clean out and refactor our current code and hierarchy.</p>\n\n<p>Paul</p>\n'}, {'answer_id': 1821631, 'author': 'Andrey Nikiforov', 'author_id': 221539, 'author_profile': 'https://Stackoverflow.com/users/221539', 'pm_score': 5, 'selected': True, 'text': '<p>We are thinking about migrating from vault to git. I wrote vault2git converter that takes care of history and removes vault bindings from *.sln, *.csproj files.</p>\n\n<p>Once you have git repo, there is git2svn.</p>\n\n<p>I know it sounds like going rounds, but it might be faster than writing vault2svn from scratch.</p>\n'}]
['https://Stackoverflow.com/questions/57530', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/29/']