我刚刚使用Mercurial-2.9安装了TortoiseHG v2.11
我正在尝试转换使用TortoiseSVN 1.8创建的本地Subversion存储库。 4,Subversion 1.8.5
为了确保我的旧Subversion存储库没有任何奇怪的怪癖,我创建了一个名为test_repo的新SVN仓库,其默认文件夹结构,执行Checkout到test_repowc,然后将一些文本文件添加到主干,然后修改和提交文件几次以提供一些历史记录。
然后我打开cmd.exe,导航到该文件夹并尝试
hg convert test_repo
并得到以下内容:
assuming destination test_repo-hg
initializing destination test_repo-hg repository
test_repo does not look like a CVS checkout
test_repo does not look like a Git repository
file:///C:/Users/xxxxxx/Documents/Subversion/test_repo does not look like a Subversion repository
test_repo is not a local Mercurial repository
test_repo does not look like a darcs repository
test_repo does not look like a monotone repository
test_repo does not look like a GNU Arch repository
test_repo does not look like a Bazaar repository
cannot find required "p4" tool
abort: test_repo: missing or unsupported repository
如您所见,Mercurial为我做了file:///协议,但无法识别subversion存储库。我自己尝试使用file:///协议,使用-s标志指定存储库类型,在文件夹中运行Mongoose并以URL访问存储库,但似乎没有任何工作。我也尝试过从工作副本转换而不是从存储库转换,但这也不起作用。
我想知道它是否与SVN 1.7或1.8引入的新SVN文件结构有关(某些SVN客户端暂时不兼容)?
有没有其他人使用当前版本的TortoiseSVN和TortoiseHG运气好吗?
我打算这是一个非常快速的过渡,让所有人对DVCS和Mercurial感到兴奋,而且我已经碰壁了。我读到很多人都说这很简单,但要么我有一个奇怪的边缘情况,要么就像谣言听起来那么简单。
我已经读过其他工具,例如HGSubversion,我可以将我的SVN克隆为HG仓库,但由于这些是独立存储库,我宁愿只转换SVN,确保一切正常,然后删除和卸载SVN。我宁愿我的HG存储库仍然没有“连接”到SVN(HGSubversion允许从克隆的HG仓库“推送”到父SVN仓库吗?)。其他工具有不同的评论,所以我希望转换扩展工作。
提前致谢 - 期待Mercurial!
编辑:
记录Windows解决方案:
svnserve -r .\ -d
where hg
...如果TortoiseHg版本不是第一个,请编辑首先使用它的路径 - 此版本包含使用svn://
协议所必需的SVN python绑定。编辑路径后重新启动cmd提示符。运行hg convert -s svn svn://localhost .\hg_repo_name
svn://
斜线方向与http://
和file:///
不一样C:\
hg --config config.svn.trunk= convert -s svn svn:\\localhost .\hg_repo_name
`hg convert svn://%computername%.domain.com/code_folder。\ hg_repo_name
答案 0 :(得分:6)
作为Convert wiki州
先决条件:
Subversion的Python绑定
似乎Python绑定尚未更新(至少)使用ra_local和1.8+存储库。
您有两个选择
OldRepo>svnadmin create --compatible-version "1.7" .
>svn log file:///Z:/OldRepo
------------------------------------------------------------------------
r1 | Badger | 2014-02-15 00:30:22 +0600 (Сб, 15 фев 2014) | 1 line
Create initial state
------------------------------------------------------------------------
>hg convert file:///Z:/OldRepo HG2-Repo
initializing destination HG2-Repo repository
scanning source...
sorting...
converting...
1 Create initial state
0 Create initial state
使用HGSubversion
克隆OldRepo后的结果相同>hg clone file:///Z:/OldRepo HG-Repo
[r1] Badger: Create initial state
pulled 2 revisions
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
只是示例
hg clone https://subversion.assembla.com/....
...
25 files updated, 0 files merged, 0 files removed, 0 files unresolved