gpt4 book ai didi

git - 使用 Git-LFS 将 SVN 迁移到 Git

转载 作者:太空狗 更新时间:2023-10-29 12:55:33 29 4
gpt4 key购买 nike

我们有一个巨大的 SVN 存储库(~100GB),我们正在尝试将其迁移到 Git。问题是,repo 包含大量分布在文件夹树中的二进制文件。

我们想到的第一件事是将二进制文件移动到 Git-LFS,但之前我们需要解决一些问题:

  1. 我们需要保留提交历史。是否可以在以前的提交中用 LFS 文件指针替换二进制文件?
  2. 我们正在使用多个分支机构。在 checkout 期间,git-lfs 是否缓存现有的二进制文件,以便分支之间的 checkout 不会涉及一次又一次地重新下载这些二进制文件。
  3. Git-LFS 是否支持跨不同分支使用一个二进制文件,或者我们应该为服务器上的每个分支复制每个二进制文件?
  4. 是否可以在 checkout 过程中对二进制文件进行部分 checkout ?因此,如果需要,只会下载二进制文件的某些部分。
  5. 在服务器上,这个二进制文件应该如何存储?是否需要服务器应用程序来存储这些二进制文件,或者简单的 HTTP/FTP 服务器就可以?

谢谢

最佳答案

我想我已经找到了这个问题的答案,尽管我自己还没有完成测试(我们的存储库的第一步需要很多小时)。诀窍来自这个 Atlassian 文档:

https://confluence.atlassian.com/bitbucket/use-bfg-to-migrate-a-repo-to-git-lfs-834233484.html

这是 bitbucket 特有的,但我想它适用于任何 git 存储库。

第 1 步: 第一步是将 SVN 项目转换为 git。这可以使用 git-svn 来完成,如下所述:

https://john.albin.net/git/convert-subversion-to-git

该页面还描述了继承作者和添加 git 作者允许的额外详细信息(真实姓名和电子邮件)的方法。

第 2 步: 现在按照上述 Atlassian 文档中的说明使用“BFG Repo-Cleaner”将历史记录中的所有“大文件”替换为对 git LFS 的引用。这是一个更简单的工具,可以完成一些也可以使用 git-filter-branch 工具完成的事情。

我可以在这里给出分步说明,但我只是从其他来源复制,我自己还没有真正尝试过(现在正在运行)。当我在这里看到结果时,我会再次更新。

编辑:我在将近两年前完成测试时忘记更新这个,现在才注意到,因为我得到了赞成票。根据我的内存,我结束了使用 git lfs migrate 而不是 BFG 将大文件从 repo 迁移到 git LFS。 ( https://github.com/git-lfs/git-lfs/wiki/Tutorial )

关于git - 使用 Git-LFS 将 SVN 迁移到 Git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38856833/

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