如何在存储库上使用 svn2git

2023-12-19

我在用着svn2git https://github.com/nirvdrum/svn2git测试 svn 存储库到 git 的迁移。 现在我的 svn 是这样构建的

myproj包含

repo1 /
repo2 (obsolete)/
old/

每个存储库都包含自己的分支、标签等。 我只需要 repo1 中的所有内容。 当我开始这个过程时,我得到这个:

svn2git https://server/myproj/repo1 --username LVO

output:

Initialized empty Git repository in /folder/.git/
Using higher level of URL: https://server/myproj/repo1 => https://server/myproj

然后这个过程就开始了。恐怕它也会占用所有其他旧的仓库。这是正确的开始方式吗?:

$ svn2git https://server/myproj/repo1 --username xxx --trunk=/repo1 --branches=/repo1 --tags=/repo1 

(尤其是后备箱的事情我不清楚)。当我的存储库位于此树中时,如何启动 svn2git?


对于一次性迁移git-svn is not用于转换存储库或部分存储库的正确工具。如果您想使用 Git 作为现有 SVN 服务器的前端,那么它是一个很棒的工具,但对于一次性转换,您应该not use git-svn, but svn2git这更适合这个用例。

The svn2git您使用的工具基于git-svn因此,它具有大多数相同的缺点,只是在克隆后的操作中修复了一些缺点。

有很多工具称为svn2git,最好的可能是 KDE 中的一个https://github.com/svn-all-fast-export/svn2git https://github.com/svn-all-fast-export/svn2git。我强烈建议使用它svn2git工具。这是我所知道的最好的,并且它的规则文件非常灵活。

您将能够轻松配置svn2gits 规则文件,以从当前 SVN 布局生成您想要的结果,包括任何复杂的历史记录。

如果您对存储库的历史不是 100% 了解,svneverever from http://blog.hartwork.org/?p=763 http://blog.hartwork.org/?p=763是一个很好的工具,可以在将 SVN 存储库迁移到 Git 时调查其历史记录。


虽然git-svn(或者svn2git基于它)更容易上手,这里是使用 KDE 的一些进一步原因svn2git代替git-svn除了灵活性之外,它还具有优越性:

  • 历史被重建得更好、更干净svn2git(如果使用正确的),对于具有分支和合并等的更复杂的历史记录尤其如此
  • 这些标签是真正的标签,而不是 Git 中的分支
  • with git-svn标签包含一个额外的空提交,这也使得它们不是分支的一部分,所以一个正常的fetch除非你给予,否则不会得到它们--tags默认情况下,只有指向所获取分支的标签才会被获取。有了正确的 svn2git 标签,它们就在它们所属的地方
  • 如果您更改了 SVN 中的布局,您可以使用以下命令轻松配置svn2git, with git-svn你最终会失去历史
  • with svn2git您还可以轻松地将一个 SVN 存储库拆分为多个 Git 存储库
  • 或者轻松地将同一 SVN 根目录中的多个 SVN 存储库合并到一个 Git 存储库中
  • 如果正确的话,转换速度会快数亿倍svn2git比与git-svn

你看,原因有很多git-svn更糟糕的是 KDEsvn2git是优越的。 :-)

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

如何在存储库上使用 svn2git 的相关文章

  • Git 在哪里存储标签?

    Git 在哪里存储标签 我执行 git tag v0 1 0 v0 10 0 v0 11 0 但目录 git refs tags是空的 Git 将这些标签存储在哪里 谢谢 它们也可以存储在 git packed refs
  • 仅使用 Git grep 的文件名

    我只想查看文本中包含特定单词的不同文件 current directory git grep word 显示文件中具有匹配单词的每一行 所以我尝试了这个 current directory git grep word files with
  • Git:从 master 以外的分支克隆

    我正在尝试从 Github 的存储库中提取数据 但我不想克隆主分支 我想克隆其他一些分支 当我尝试时git clone
  • 将更改从一个分支复制到另一个分支

    我有一个分支名为BranchA from master 我有一些改变BranchA 我不会合并来自BranchA to master 现在我创建了另一个分支master named BranchB 我如何复制更改BranchA to Bra
  • 使用 gitignore 嵌套存储库。

    我想嵌套 2 个 git 存储库 我一直在阅读子模块 有一段时间我认为它很棒 我想我可能想要其他东西 这是我的情况 首先 我想我应该提到我的所有服务器都托管网站 并以 staging domain com 和 domain com 实时 模
  • Eclipse Git 关键字扩展

    每次我检查 git hub 服务器的源代码时 我都需要更新源代码修订关键字 version date 等 你可能知道 Git 中的主要问题是你无法使用以下命令修改文件 提交后有关提交的信息 因为 Git 首先对文件进行校验 基本上我想要实现
  • 如何在不在存储库中的情况下执行 Git 命令?

    有没有一种方法可以在不位于存储库的情况下对存储库执行 Git 命令 例如这样的事情 git home repo log 请不要告诉我cd到它 我正在通过一个exec call Use C作为 git 的第一个参数 git C home re
  • Git 的企业采用率?

    最近一些同事之间进行了一场讨论 在当今的软件行业中 如何存在两个不同的世界 面向自由软件 公司的 Question Git 在企业环境中的使用情况如何 您在企业环境中使用 Git 的体验如何 无论如何 我们在工作场所使用 git 每个人都对
  • 尝试克隆一个 git 存储库,但它卡在克隆到中

    我使用的是 Windows 10版本 10 0 19042 内部版本 19042 GIT Ver 2 32当尝试使用 git bash 执行以下命令时git clone depth 1 b carla https github com Ca
  • 如何使用 Beyond Compare 3 作为 svn 的 diff3-cmd?

    I saw this https stackoverflow com questions 294286 how to use svn with beyond compare 3帖子解释了如何让 BC3 作为 Subversion 的 dif
  • Git checkout 不会丢弃我的更改

    我在 Windows XP 上使用 git 1 7 1 和 cygwin 这个问题可以通过例子得到最好的说明 git status On branch master Changed but not updated use git add
  • Android Studio 无法连接到 SVN 服务器 - SSL 握手失败

    我在使用 Android Studio 1 01 连接到 SVN 服务器时遇到问题 当我尝试浏览远程 SVN 存储库时 出现以下错误 颠覆 访问网址 https subversion assembla com svn whozeinchar
  • git-lfs 中的多个文件版本

    我正在尝试估计 GitHub 上我的项目的存储要求 并对 git lfs 如何存储多个版本的文件有一些疑问 git lfs 是否存储多个版本的文件 如果是这样 对文件的每次更改都会导致复制整个文件 还是仅存储差异 所有版本都会计入 gith
  • GitLab:无法将代码推送到服务器?

    我已经在 Ubuntu 服务器上安装了 GitLab 一切似乎都工作正常 除了我无法向服务器推送 拉取 克隆 当我按下时 我收到一般错误消息 fatal Could not read from remote repository Pleas
  • git push --force-with-lease 总是安全吗?

    我一直遵循的规则是 一旦 git 历史记录被推送到远程存储库 就不再修改它 但我想知道交互式变基到推送 force with lease 是否绕过了这条规则 如果强制租约成功 对其他用户来说是否完全安全 或者此策略有任何注意事项吗 预先感谢
  • 使用 git 子树时如何添加特定文件夹?

    我正在开发一个复杂的 Ionic 项目 我正在开发的许多组件和提供程序都是通用的 可以在我公司正在进行的其他项目中使用 这在软件开发中很常见 这是我提出的 Git 工作流程 该图显示了分支 my company library repo c
  • PHP Github Pull 脚本错误“权限被拒绝(公钥)”

    我已经设置了一个 PHP 脚本来执行 GitHub 拉取 这包含在我的 Github 文件夹中 home mysite public html github github pull php 我的服务器已经有 SSH 公钥 就像我执行git
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • 如何在 EGit 中创建正确的新本地和远程分支组合?

    我想在 Egit 中执行以下操作 git checkout b newbranch git push u origin newbranch 这给了我一个新的本地分支 将其推送到上游服务器并创建正确的跟踪参考 我如何在 Egit 中做同样的事
  • 如何从 Git 存储库中删除选定的提交日志条目,同时保留其更改?

    我想从线性提交树中删除选定的提交日志条目 以便这些条目不会显示在提交日志中 我的提交树看起来像 R A B C D E HEAD 我想删除 B 和 C 条目 以便它们不会显示在提交日志中 但应保留从 A 到 D 的更改 也许通过引入单个提交

随机推荐

  • 如何在 Bootstrap 4 中的插入符下添加下拉箭头?

    我正在使用 Bootstrap 4 下拉选项 我想为左上角的下拉菜单添加一个向上箭头 在 Bootstrap 3 中 我们在按钮上有一个插入标记 因此我们可以将箭头添加到下拉菜单中 但在 Bootstrap 4 中 我们没有插入符号标记 使
  • Rails ORM 是否限制执行聚合的能力?

    我担心 Rails 是否可以处理金融应用程序所需的复杂聚合类型 特别是 ORM 是否可以有效地处理这些类型 在我正在考虑使用它的财务应用程序中 需要对以各种方式汇总的详细财务数据进行大量报告 如果没有 Rails ORM 的支持 我需要直接
  • 使 CSS 网格中的单行跨越所有列

    我怎样才能使 legend 跨越所有行 所以它会弄乱 fieldset 其样式为 3 列 CSS 网格 fieldset legend Personal Details legend fieldset fieldset legend
  • 编译器是否允许交错计算不同函数参数中的子表达式? [复制]

    这个问题在这里已经有答案了 我想知道以下情况 void f int a int b int a int x std cout lt lt func a lt lt std endl return 1 int b int x std cout
  • 如何在 Django 中测试空查询集?

    我正在 Django 中测试一个视图 该视图应该从对象中删除所有标签 为此 我使用这个断言 self assertEqual list Tag objects get for object Animal objects get pk 1 这
  • 根据 Airflow 中任务的输出字典动态生成多个任务

    我有一个任务 其中输出是一个字典 每个键中都有一个列表值 task task id gen dict def generate dict return output dict output look like this A aa bb cc
  • ASP.NET Web API,从 Flex FileReference 上传时 MIME 多部分流意外结束

    按照 ASP NET 上的教程 实现了一个用于执行异步文件上传的 Web API 控制器方法 如下所示 public Task
  • 帮助理解 Java 中的函数对象或函子

    有人可以解释什么是函子并提供一个简单的例子吗 函数对象就是这样 既是对象又是函数的东西 旁白 将函数对象称为 函子 是对该术语的严重滥用 另一种 函子 是数学中的核心概念 并且在计算机科学中具有直接作用 请参阅 Haskell 函子 该术语
  • 在 PHP 中应用差异

    我正在使用 Text Diff PEAR 包来比较短文本文档 其中 Text Diff 对象是使用每个文档中以空格分隔的单词列表创建的 我希望将差异存储在数据库中 然后在再次加载文件时应用它 有没有一种简单的方法来应用这个差异 或者我需要编
  • 应用程序根目录中“npm install”生成的许多不必要的文件

    通常 当我在应用程序目录中执行 npm install 时 会在 node modules 文件夹中生成一堆 npm 库文件 这是预期的 今天突然我开始看到许多文件在应用程序目录内部和节点模块外部生成 有人遇到过这个问题吗 如果是的话 有什
  • C++ int 操作在 mips 架构上是原子的吗

    我想知道我是否可以在不锁定 mips cpu 的情况下读取或写入共享 int 值 尤其是 Amazon 或 Danube 我的意思是 如果这样的读取或写入是原子的 其他线程不能中断它们 需要明确的是 我不想阻止线程之间的竞争 但我关心 in
  • 在 Windows 中的 Windows 移动应用程序中发送邮件

    我是 Windows Mobile 应用程序的新手 在我的项目中 我想使用发送电子邮件microsoft windowsmobile pocketoutlook 到目前为止我有以下代码 private void btnsubmit Clic
  • 为什么 Rust 允许通过空指针调用函数?

    我正在尝试 Rust 中的函数指针魔法 最终得到了一个代码片段 我完全没有解释为什么它会编译 甚至没有解释它为什么运行 fn foo println This is really weird fn caller
  • 如何将文件夹层次结构中的所有 git 内容向上移动一级?

    我有一个 git 存储库 其结构如下 repo git bootstrap py buildout cfg gitignore webapp manage py modules templates static 我想移动内容webapp文件
  • Net Core:从 Autofac 模块访问 appsettings.json 值

    AspNet核心应用程序 1 像这样的Autofac模块 public class AutofacModule Module protected override void Load ContainerBuilder builder Reg
  • 在 PHP PCRE 函数中双重转义还是不双重转义?

    我一直在寻找一篇关于何时需要双重转义 何时不需要双重转义的可靠文章 但我找不到任何东西 也许我看起来不够仔细 因为我确信在某个地方有一个解释 但让下一个有这个问题的人很容易找到 以以下正则表达式模式为例 n domain com myfee
  • 封闭式班级

    是否可以创建一个不再接纳新成员的类型类 也许通过使用模块边界 我可以拒绝导出完整实例定义所需的函数 但这只会在有人生成无效实例时导致运行时错误 我可以将其设置为编译时错误吗 自 GHC 7 8 1 起 封闭型家庭 https downloa
  • 单击超链接时停止模糊事件

    我用了这个答案jQuery 模拟输入和 div https stackoverflow com questions 11228628 jquery select simulation with input and div创建一个看起来相似的
  • 拖放背后的逻辑

    我想知道基本拖放功能的 它是如何工作的 和 它应该如何设计和实现 方面 我还没有实现过这样的功能 我正计划为我的一个项目这样做 并且我确实对如何实施它有一些想法 我想确保我走在正确的道路上 并且你们很可能也对此事有话要说 假设我有如下列出的
  • 如何在存储库上使用 svn2git

    我在用着svn2git https github com nirvdrum svn2git测试 svn 存储库到 git 的迁移 现在我的 svn 是这样构建的 myproj包含 repo1 repo2 obsolete old 每个存储库