0

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

这就是我所做的:

按照此处此处此处的说明进行操作,并且:

  • 安装 TortoiseHg 2.9.2(与 Mercurial 2.7.2)

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

  • 使用路径而不是此处指定的集合来表示存储库:

  • 设置一个 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 内部服务器错误”吗?

4

2 回答 2

1

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

于 2013-11-01T19:55:09.720 回答
0

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

于 2013-11-01T10:16:24.233 回答