gpt4 book ai didi

git-svn - 带有嵌套 svn :externals 的 svn 到 git 迁移

转载 作者:行者123 更新时间:2023-12-02 04:35:58 32 4
gpt4 key购买 nike

从带有 svn 外部的 svn 迁移到 git。
每个 svn externals 可能有它自己的 svn:externals。这里没有我发现有用的如何将带有外部的 svn 迁移到 git 的指南。
每个分支都可能有自己的分支标签主干。
迁移整个存储库的最佳方法是什么?
我正在查看主存储库的 git svn clone 添加 git 子模块,每个外部克隆也是如此。但是由于外部是嵌套的,我不知道什么是最好的解决方案。
至今使用的脚本:

https://github.com/eneroth/git-externals
https://github.com/eneroth/git-externals

最佳答案

我有自己的研究,但没有从开源中找到一体化解决方案。有很多单一的“单面”解决方案并未涵盖 svn 到 git 转换的许多方面,例如:

  • svn:externals
  • svn:ignore转换为 .gitignore
  • 自动 SVN 作者电子邮件转换或防止在没有转换的情况下继续(例如,GitLab 确实使用帐户邮件来跟踪帐户的 repo 更改(聚合参与统计),如果您忘记从 author@<repo-guid> 转换邮件,将拒绝跟踪任何内容在 git-svn 工具之后)
  • svn 标签/分支转换为原生 git 标签/分支
  • 处理转换冲突或无法转换
  • 处理 2 路转换 (git-2-svn)
  • 处理转换恢复(在提交到 svn/git repos 之一之后)
  • 处理无法访问裸存储库或不访问 SVN 存储库根
  • 处理手动转换开始/恢复(通过脚本或可执行文件)而不是作为独立服务,反之亦然
  • 支持从/到流行的 svn/git 集线器的转换,如 sourceforge、github、gitlab、bitbucket

  • ...等等。

    这是一个对自己进行调查或研究的相当大的领域,并且可能会花费大量时间来至少从 svn-to-git 或任何转换中找出您真正需要或想要的东西。

    对于我自己,我发现这非常接近我想要的:
    https://techbase.kde.org/Projects/MoveToGit/UsingSvn2Git

    规则文件示例:
    https://cgit.kde.org/kde-ruleset.git/tree/kde-rules-main

    账户 map 示例:
    https://cgit.kde.org/kde-ruleset.git/tree/account-map

    从本地裸 git 存储库(由 KDE 工具生成)打包/推送到远程 git 存储库的脚本示例:
    https://phabricator.wikimedia.org/diffusion/OSOF/browse/master/svn2git/scripts

    在切片之前扫描 SVN 存储库的第三方项目:
  • https://github.com/hartwork/svneverever

  • 其他第三方项目的一些端口:
  • https://github.com/mazong1123/svn2gitnet (ruby 工具的点网端口)
  • http://rsvndump.sourceforge.net (与 svnrdump 类似,但即使您的存储库访问权限仅限于此子目录,也允许转储子目录)

  • 一些独立的有趣实现:
  • https://gitlab.com/esr/reposurgeon (作者的一些比较:http://www.catb.org/~esr/reposurgeon/features.html)

  • 但是,仍然有许多 Unresolved 方面或缺点,例如:
  • 支持 git subtree/submodules/etc 将 SVN 存储库分割成一个 GIT 根存储库,并引用其他小型 GIT 存储库
  • svn:externals 的自动转换到 git 子树(来自 KDE 项目的规则只支持手动或半自动(正则表达式)转换)

  • 如果您决定使用 KDE 转换器,那么您可以编写一个脚本来为每个修订范围准备您想要翻译的内容 svn:externals变成你想要的。

    关于git-svn - 带有嵌套 svn :externals 的 svn 到 git 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42793618/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com