使用Git-LFS进行SVN to Git迁移

问题描述 投票:8回答:1

我们有一个巨大的SVN存储库(~100GB),我们正试图迁移到Git。问题是,repo包含许多遍布文件夹树的二进制文件。

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

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

谢谢

git version-control git-lfs version-control-migration
1个回答
1
投票

我想我已经找到了答案,虽然还没有完成自己的测试(第一步需要很长时间才能完成我们的存储库)。诀窍来自这个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工具完成一些事情。

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

编辑:当我差不多两年前完成测试时,我忘了更新这个,现在注意到因为我有一个upvote。从我记忆中,我结束使用git lfs migrate而不是BFG将大文件从repo迁移到git LFS。 (https://github.com/git-lfs/git-lfs/wiki/Tutorial

© www.soinside.com 2019 - 2024. All rights reserved.