将svn存储库转换为mercurial时出现500错误

时间:2013-10-31 23:10:10

标签: svn mercurial migration

我正在尝试将Subversion存储库转换为Mercurial。

这就是我所做的:

按照说明hereherehere以及:

  • 安装了TortoiseHg 2.9.2(使用Mercurial 2.7.2)

  • 安装了Python 2.7(不像链接所说的Python 2.6)

  • 使用路径代替指定here的集合来表示存储库:

  • 设置一个Web服务器来托管存储库(确保通过服务器管理器安装了CgiModule)

在C:\ MyRepository

中设置Mercurial存储库

确保在C:\ MyRepository \ .hg \ hgrc文件中添加了

[extensions]
convert =

输入C:\MyRepository>hg convert http://www.myrepository.org:8080/svn --debug --traceback

我得到了这个输出:

assuming destination svn-hg
initializing destination svn-hg repository
svn: cannot probe remote repository, assume it could be a subversion repository. Use --source-type if you know better
Traceback (most recent call last):
  File "hgext\convert\subversion.pyo", line 264, in __init__
  File "hgext\convert\transport.pyo", line 89, in __init__
  File "libsvn\client.pyo", line 1845, in svn_client_open_ra_session
SubversionException: ("Repository moved permanently to 'http://myrepository.org:8080/'; please relocate",
5011)
using http://myrepository.org:8080/svn
sending capabilities command
real URL is http://myrepository.org:8080/
requested URL: 'http://myrepository.org:8080/svn?cmd=capabilities'
sending between command
sending capabilities command
requested URL: 'http://myrepository.org:8080/?cmd=capabilities'
capabilities: none
requested URL: 'http://myrepository.org:8080/?cmd=between&pairs=0000000000000000000000000000000000000000-
0000000000000000000000000000000000000'
http authorization required
realm: VisualSVN Server
user: tolao
password:
http auth: user tolao, password *********
Traceback (most recent call last):
  File "mercurial\dispatch.pyo", line 97, in _runcatch
  File "mercurial\dispatch.pyo", line 778, in _dispatch
  File "mercurial\dispatch.pyo", line 549, in runcommand
  File "mercurial\dispatch.pyo", line 869, in _runcommand
  File "mercurial\dispatch.pyo", line 840, in checkargs
  File "mercurial\dispatch.pyo", line 775, in <lambda>
  File "mercurial\util.pyo", line 507, in check
  File "hgext\convert\__init__.pyo", line 283, in convert
  File "hgext\convert\convcmd.pyo", line 497, in convert
  File "hgext\convert\convcmd.pyo", line 56, in convertsource
  File "hgext\convert\hg.pyo", line 241, in __init__
  File "mercurial\hg.pyo", line 112, in repository
  File "mercurial\hg.pyo", line 102, in _peerorrepo
  File "mercurial\httppeer.pyo", line 245, in instance
  File "mercurial\statichttprepo.pyo", line 159, in instance
  File "mercurial\statichttprepo.pyo", line 106, in __init__
  File "mercurial\scmutil.pyo", line 823, in readrequires
  File "mercurial\scmutil.pyo", line 223, in read
  File "mercurial\statichttprepo.pyo", line 42, in read
IOError: [Errno None] HTTP Error 500: Internal Server Error
abort: HTTP Error 500: Internal Server Error

知道为什么我最终得到'500内部服务器错误'了吗?

2 个答案:

答案 0 :(得分:1)

您正在使用的mercurial转换扩展程序说您应该使用svnsync来同步本地的完整svn历史记录并从中进行转换。从本地源转换将避免这种情况(因为500来自您的远程服务器,这将超出图片)并节省了大量的总时间。

答案 1 :(得分:0)

您输入的网址似乎不正确。仔细检查您是否输入了Subversion存储库的正确URL。它应该是http://www.myrepository.org/svn/<repo-name>