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 存储库” 的相关文章

  • 如何在运行“更新”之前查看存储库中的文件

    I run hg pull这向我的存储库添加了新的更改 在使用新更改更新我的工作目录之前 我想查看这些新文件 更改 我相信我使用的 SVNsvn st u但在 Mercurial 中是如何完成的呢 在拉动之前 您可以使用 hg incomi
  • 如何修复损坏的本地 Subversion 工作副本?

    我通常使用 git 对 Subversion 的基础知识知之甚少 所以请保持温柔 我在 Windows 7 上使用 TortoiseSVN SVN 客户端最近宣布需要升级 所以我就这么做了 所有文件都丢失了源代码管理图标 并且资源管理器中出
  • GitHub 的 Subversion 版本? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 移动具有历史记录的目录

    我有一个这样的 SVN 结构 Projects Project1 Project2 someFolder Project3 Project4 我想将所有项目移动到 Projects 文件夹中 这意味着我想将项目 3 和 4 从 someFo
  • 是否可以从命令行调用 Mathematica 的 diff 功能?

    乌龟SVN http tortoisesvn net 也其他乌龟客户 http tortoisehg bitbucket io about html 包括一个script http osdn net projects tortoisesvn
  • 使用 Subversion,如何从一个文件剪切并粘贴到另一个保留历史记录的文件

    情况是我花了一些时间搞乱一些实验代码 我现在想将该代码的一部分 大约 500 行 移动到另一个文件中 但我不想丢失历史记录 就像我进行简单的文本编辑器剪切和粘贴一样 据我所知 最接近的方法是将代码从原始文件中分离出来 svn 副本 然后从两
  • Mercurial on Phabricator:“远程:中止:流意外结束”

    我在尝试推送到远程服务器时遇到此问题 它是 Phabricator 上的 Mercurial 存储库 这是我的输出 hg commit m udpate README hg push pushing to ssh company serve
  • 提取TortoiseSVN保存的密码

    有什么方法可以提取 TortoiseSVN 保存的凭据吗 简短回答 您可以使用TortoiseSVN密码解密器 http www leapbeyond com ric TSvnPD 轻松显示您缓存的凭据 包括密码 长答案 该工具的工作原理如
  • 加载了不兼容的 JavaHl 库

    我在使用 Subclipse 和 JavaHL 库时遇到问题 Subclipse 它给出了错误 加载了不兼容的 JavaHL 库 需要 1 8 x 或更高版本 我使用的是 Ubuntu 桌面 12 04 32 位 Subclipse 1 1
  • 如何通过中央 CVS 存储库在本地使用 Mercurial?

    目前我公司正在使用cvs进行版本控制 我想在本地使用 Mercurial 因为它具有灵活性和合并功 能 这将使我的工作变得更加轻松 这应该怎么做呢 First 本地获取CVS存储库 Second 在此 CVS 存储库上本地创建一个 Merc
  • 从存储库检出代码时出现 SVN 错误 E175002

    在尝试从在线存储库中签出代码时 我收到以下错误 E175002 repos xxx svn vcc default 的报告 我正在尝试从远程计算机上签出代码 经过长时间的研究 我终于找到了一个解决方案 解决方案是allow from all
  • 在 Ubuntu 12.04 上的 Apache 上配置 SVN 服务器

    我正在尝试通过 HTTP 访问现有的 Subversion 服务器 我的dav svn conf文件看起来像
  • SVN Visual Studio 存储库的工作目录结构

    我刚刚在我们公司为 Visual Studio 项目引入了 SVN 并创建了一个如下所示的存储库 解决方案 是 Visual Studio 解决方案 包含 1 n 个项目 solution1 trunk projectA projectB
  • 如何在不访问 hg 的情况下提取 BitBucket 存储库

    我想知道是否可以在不访问 hg 的情况下将私人 Mercurial 存储库拉到服务器上 我有 SSH 访问权限 但无法安装 HG 我正在考虑某种使用 http 访问的 Python 脚本或其他东西 但我不确定 我还认为这可能只有通过公共回购
  • 尽管有 svn 复制,如何 git svn 克隆完整历史记录

    在我的公司 我们即将从 svn 切换到 git 我们使用的 SVN 非常大 没有 svn 布局 并且在每个版本拆分上我们都制作了一个 svn 副本 SVN存储库结构 svnserver company de product xy 主要版本号
  • Subversion 中所有版本化文件的列表? (按名称删除文件)

    办公室里的一些聪明人设法提交了一大堆 备份 文件 它们以 到我们的颠覆服务器 我最好使用一些基本的 bash 脚本来删除这些文件 而不是手动浏览存储库 有什么方法可以获取目录中所有 subversion 版本控制文件的列表 以便我可以进行一
  • 将 svn 存储库添加到现有的 git 存储库中?

    我知道你可以使用 git svn init 来跟踪 svn 存储库 但这是为了你想创建一个全新的存储库 我的情况是 我目前已经有一个现有的 git 存储库 并且希望通过将 svn 存储库设为我当前 git 存储库中的远程分支来跟踪 svn
  • 重新整合工作流程

    各位专家您好 我这个 Tortoise SVN 的老新手 问一个简单的问题 我正在一个分支上工作 现在想将分支中的更改 提交后 合并到主干 但是我不确定正确的工作流程 在解决所有可能的冲突后 我是否应该首先将主干合并到我的工作副本 然后将我
  • 如何从 SVN 获取所有未版本化文件的列表?

    有时 您正在开发并决定提交 却忘记了您在项目中创建了一些文件 然后几天后 你的朋友从 Subversion 中得到了你的版本 并抱怨有些文件似乎丢失了 你意识到了 啊糟糕 我忘记添加那些文件了 如何从 Subversion 获取不受版本控制
  • 递归删除属性

    Tortoise SVN 可以选择递归地将属性应用于所有子文件夹 子文件 现在我需要删除这个属性 我怎样才能递归地做到这一点 我没有找到如何使用 GUI 递归删除属性 但您可以使用 svn 命令行工具删除属性 svn propdel PRO

随机推荐