SVN 上的 HG Convert 给出“看起来不像 Subversion 存储库”

2024-03-05

我刚刚安装了 TortoiseHG v2.11 和 Mercurial-2.9

我正在尝试转换使用 TortoiseSVN 1.8 创建的本地 Subversion 存储库。 4、颠覆1.8.5

为了确保我的旧 Subversion 存储库没有任何奇怪的怪癖,我使用默认文件夹结构创建了一个名为 test_repo 的新 SVN 存储库,执行了对 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!

EDIT:

记录 Windows 解决方案:

  1. 打开命令提示符
  2. 导航到您的 SVN 存储库(不是工作副本)
  3. run svnserve -r .\ -d
  4. 打开另一个命令提示符
  5. 导航到您想要 Mercurial 存储库的位置
  6. 可选:运行where hg...如果 TortoiseHg 版本不是第一个,请编辑路径以使其成为第一个 - 此版本包含使用所需的 SVN python 绑定svn://协议。编辑路径后重新启动 cmd 提示符。
  7. run hg convert -s svn svn://localhost .\hg_repo_name

    • 我使用了 computername.full.domain.name 而不是 localhost,但 localhost 也应该可以工作。
    • svn://斜线方向就像http:// and file:///不喜欢C:\
    • 如果你的 SVN 仓库代码没有 trunk 或者你没有使用 trunk 文件夹(我的第一个仓库没有使用 trunk 文件夹,因为我不知道自己在做什么),你需要这个,它告诉 Mercurial 使用根目录作为主干:

    hg --config config.svn.trunk= convert -s svn svn:\\localhost .\hg_repo_name

    • 我刚刚有一个 SVN 存储库,其中我将代码文件夹导入到根目录中,但没有导入到主干中...我尝试使用上面的代码将主干设置为等于代码文件夹名称,但它不起作用...但是,当我将文件夹名称附加到 svn url 时,它起作用了:

    `hg 转换 svn://%computername%.domain.com/code_folder .\hg_repo_name

祝你好运!


As the 转换维基 https://www.mercurial-scm.org/wiki/ConvertExtension#Converting_from_Subversion states

先决条件:

Subversion 的 Python 绑定

并且似乎 Python 绑定尚未更新(至少)以将 ra_local 与 1.8+ 存储库一起使用。

你有两个选择

  • 创建1.7兼容local用于稍后转换的 SVN 存储库

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
  • Use any用于访问 1.8+ 存储库的服务器(svnserve 是最简单的方法)。我没有尝试过 svn:// 存储库,但测试了 1.8 Subversion 的远程 http-served 存储库

只是样品

hg clone https://subversion.assembla.com/....
...
25 files updated, 0 files merged, 0 files removed, 0 files unresolved
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SVN 上的 HG Convert 给出“看起来不像 Subversion 存储库” 的相关文章

  • 将密码存储在 TortoiseHg 中

    有没有办法配置乌龟汞 http tortoisehg bitbucket io 存储我的密码 我有一个项目托管在谷歌代码 http code google com 我使用 TortoiseHg 访问 每当我想要将更改推送到 Google 代
  • 当文件标记为“历史记录已提交”时,svn diff

    我对已合并到工作目录中主干的分支进行了更改 svn stat 显示已更改文件的正确列表 但是 svn stat 输出在计划提交新添加到分支的每个文件的历史记录中包含一个 A src main java com java 当我运行 svn d
  • svn 本地副本中修改的文件列表

    我使用 Tortoise 客户端签出 提交我对 SVN 的更改 但我发现这有点困难 因为我无法找到本地副本中更改的所有文件的列表 有什么捷径或者我忽略的东西吗 我是 SVN 新手 供参考 我不熟悉乌龟 但是对于 linux 的颠覆我会输入
  • 当必须同时使用 Git 和 Subversion 时如何处理 Git-svn

    Update 更详细地说 我尝试在家使用纯 Git 的原因是 我的公司希望迁移到 Git 但经理不愿意进行更改 因为开发人员不了解我们自己的存储库上的 Git 所以 我尝试做的是 我尝试让每个人都使用 Pure git 同时有人可以在这个学
  • 无法加载文件或程序集“SharpSvn”或其依赖项之一。尝试加载格式不正确的程序

    我刚刚在这里下载了 64 位版本的 SharpSVNthe link http sharpsvn open collab net files documents 180 5570 SSvn 1 7002 1998 x64 zip 当我运行我
  • 无法将 Visual Studio 项目中的多个文件提交到 subversion

    几周以来 我在使用 Subversion 时遇到了一些问题 当我尝试从 Visual Studio 2017 项目提交文件时 有些文件无法提交到我的 Visual SVN 服务器 准确地说 项目文件夹中的所有文件 如 cs config c
  • 从java程序调用SVN命令

    我想从 java 程序调用 SVN 命令 update commit 有什么帮助吗 SVN 乌龟SVN 环境 java程序将在jBoss服务器内运行 从应用程序服务器内使用 GUI SVN 客户端是一个非常非常糟糕的主意 而Tortoise
  • 如何使用 TortoiseSVN 中的启动提交挂钩来设置自定义日志条目?

    我想将 TortoiseSVN 自动化作为提交过程的一部分 具体来说 我想为提交对话框动态创建一个日志条目 我知道我可以从命令行或右键单击文件夹并选择 svn commit 来启动提交对话框 我想使用启动提交挂钩来设置日志条目 我认为这可以
  • 您使用分支/标签/主干约定吗?

    您是否始终遵循将分支 标签和主干目录放在 Subversion 存储库顶层的惯例 最近 我不再打扰 也没有发生任何不好的事情 还 如果需要创建目录树 应该可以移动目录树 我是不是给以后惹麻烦了 您是否尝试过分支或标记 到那时 就没有问题了
  • 清理 Subversion 存储库的最佳方法是什么?

    我有一个不断增长的存储库 其中包含十几个我使用 TortoiseSVN 维护的项目 因为我对此完全陌生 还不知道其来龙去脉 我保存存储库的空间有限 因此我想备份它 然后删除一些旧版本 例如 如果一个项目的版本为 50 我只想保留 50 49
  • 比较在 Eclipse Neon 中不工作

    我 最后 尝试从 Mars 2 升级到 Eclipse Neon 安装 SVN 支持和 SVNKit 1 8 14 连接器后 我可以访问我的存储库 然而Compare不管用 如果我右键单击已修改的文件 然后选择与工作副本中的基础进行比较将显
  • TortoiseSVN 错误“工作副本已锁定”“sqlite:尝试写入只读数据库” - 这可能是由不正确的权限引起的吗?

    应用程序的工作副本在尝试更新时返回所描述的错误 此错误是否是由于没有足够的权限写入该文件夹 或其中的某些文件 而导致的 我尝试过 释放锁定 功能 乌龟告诉我没有锁定 我在 Windows 下使用 TortoiseSVN 时遇到了这个错误 显
  • 如何在 Mercurial 中查看文件的先前版本

    我正在使用 Mercurial 对目录中的几个文件进行版本控制 假设我有 10 次提交 10 个变更集或修订 我只想查看特定文件 例如 thisFile py 在其第七个修订版中的外观 我不想恢复到这个旧版本 我不想对之前的版本进行任何更改
  • 使用 svn diff 时如何获取无上下文

    当我从命令行使用 svn diff 时 它会打印出已更改的行 以及前后 3 个未更改的行以获取上下文 我更喜欢只看到没有上下文的更改行 我无法确定任何命令行选项可以让我让它以这种方式运行 默认情况下 标准 diff 和 cvs diff 执
  • DVCS命令的统一

    当处理多个 开源 项目时 多个版本控制系统开始出现问题 虽然它们共享共同的操作 但我经常在输入时犯错误hg add反而git add 我记得前段时间看到过一个项目 通过提供基本命令以统一的方式访问不同的源代码控制软件提交 ci add等在外
  • 颠覆和混合修订:破坏构建的秘诀?

    在使用 TFS 一段时间后 我刚刚回到 subversion 一般来说我已经很退出了 有一件事情我记得不一样 我不记得能够从过时的工作副本中提交 或者也许我的记忆力让我无法理解 过时 的定义 我认为 过时 意味着自从我上次更新工作副本以来
  • Subversion 和 Visual Studio 项目的最佳实践

    我最近开始在 Visual Studio 中处理各种 C 项目 作为大型系统计划的一部分 该系统将用于替换我们当前的系统 该系统是由用 C 和 Perl 编写的各种程序和脚本拼凑而成的 我现在正在进行的项目已经达到了颠覆的临界点 我想知道什
  • readthedocs 中自动生成的索引文件

    我无法上传到阅读文档 http docs readthedocs io en latest 我为我的项目准备的文档 我正在尝试了解问题所在 该文档在本地构建良好make html但我无法上传 GitHub 项目是ASCII基因组 https
  • 在 Subversion 中,我可以是登录名以外的用户吗?

    我想知道如何获得Subversion更改我的更改显示的名称 我刚刚开始使用Subversion 我目前正在使用它来对 XP 笔记本电脑上的代码进行版本控制 我总是以我妻子的名字登录 我希望 subversion DB 显示我名下的更改 稍后
  • Maven 中不同配置文件的不同 SCM

    在我的项目中 我们必须使用 maben build number 插件来构造 jar 的最终名称 为此我们使用 SCN 的修订版 因此我们需要 SCM 但是我们在无法直接访问的受控环境和本地测试环境上有两个 SVN 因此对于我们的 poup

随机推荐