相关疑难解决方法(0)

大型二进制文件和> 1TB存储库的版本控制?

不好意思拿出这个话题再次,因为有 许多 其他已经相关的问题-但没有直接涉及我的问题.

我正在搜索的是一个很好的版本控制系统,只能处理两个简单的要求:

  1. 存储大型二进制文件(> 1GB)
  2. 支持> 1TB的存储库(是的,那是TB)

为什么?我们正在为我们的下一个大型操作系统部署重新打包几千个软件应用程序,我们希望这些软件包遵循版本控制.

到目前为止,我已经有了一些SVN和CVS的经验,但是我对两个大型二进制文件的性能都不太满意(一些MSI或CAB文件将> 1GB).此外,我不确定他们是否能够在未来2 - 5年内按照我们期望的数据量进行调整(就像我说的那样,估计> 1TB)

那么,你有什么建议吗?我目前也在研究SVN外部和Git子模块,虽然这意味着每个软件包都有几个单独的存储库,但我不确定这是我们想要的......

svn git version-control packaging

23
推荐指数
3
解决办法
2万
查看次数

git如何存储重复文件?

我们有一个包含SVM AI输入数据和结果的Git存储库.每次运行新模型时,我们都会为该模型创建一个新的根文件夹,以便我们可以随时组织结果:

/run1.0
  /data
    ... 100 mb of data
  /classification.csv
  /results.csv
  ...
/run2.0
  /data
    ... 200 mb of data (including run1.0/data)
  /classification.csv
  /results.csv
  ...
Run Code Online (Sandbox Code Playgroud)

在我们构建新模型时,我们可能会从之前的运行中获取数据(大型.wav文件).这意味着我们的数据文件夹2.0可能包含1.0 /数据中的所有文件以及我们可能收集的其他数据.

如果我们继续这样做,回购很容易超过千兆字节.

Git是否有办法识别重复的二进制文件并仅存储一次(例如像符号链接)?如果没有,我们将重新设计数据的存储方式.

git

21
推荐指数
2
解决办法
4563
查看次数

是否可以将未版本控制的文件保存在git存储库中

这是问题所在:

我在我的托管合作伙伴处创建了裸git存储库,我将其用作我维护项目的所有位置/计算机的参考存储库.

问题是我的项目使用的是一个sqlite db文件,它会不断增长(现在大约是150MB).随着时间的推移,我的.git文件夹越来越大(最近大约1GB).我的托管空间有限.

我需要裸存储库来包含此db文件的HEAD版本,但我真的不需要保留其版本历史记录.

因此,为了获得一些空间,我不时从历史记录中删除db文件,清理存储库并重新创建裸版本.这有效,但是非常痛苦.

有没有办法告诉git只保留文件的最后一个版本并删除它的历史记录?

git

17
推荐指数
1
解决办法
3348
查看次数

使用UDK进行游戏开发的版本控制系统?

我们的团队正在考虑使用虚幻开发工具包制作游戏,我们正在寻找版本控制解决方案.

我一直偏爱分散的VCS,如Git和Mercurial,并将它用于我的所有个人项目.虽然我听说过使用这些系统进行游戏开发的问题,但它们并不适合大二进制文件.

Subversion似乎是一个很好的解决方案,但我过去根本没有使用它,所以我真的不知道它提供了什么.

svn git version-control mercurial

12
推荐指数
1
解决办法
4435
查看次数

多个0.5GB二进制文件的GIT Rebase致命

[这个问题基本上是在rebase期间重新打开git崩溃,从来没有答案]

我正在尝试从我的'secc'分支进行改造:

$ git rebase main
First, rewinding head to replay your work on top of it...
fatal: Out of memory, malloc failed (tried to allocate 553656577 bytes)         # about 0.5 GB
$ git rebase --abort
No rebase in progress?
Run Code Online (Sandbox Code Playgroud)

失败与两个分支及其共同祖先有三个.dat文件的事实有关,每个文件都是0.5 GB.

在这种情况下我该怎么办?

附加信息:

  • 'git merge main'工作得很好.
  • 使用'*.dat merge = keepTheirs'扩充.gitattributes并不能阻止致命.
  • *.dat文件确实不同.
  • 我愿意删除*.dat文件以重新绑定其他文件,然后添加回*.dat.但是怎么样?
  • 我正在使用git 1.7.9.4

git git-rebase

12
推荐指数
1
解决办法
949
查看次数

为什么Git不能处理大文件和大型回购?

SO和其他地方的数十个问题和答案都强调Git无法处理大型文件或大型回购.建议使用一些变通方法,例如git-fatgit-annex,但理想情况下Git会本地处理大型文件/ repos.

如果这种限制已存在多年,是否有理由限制尚未消除?我认为Git中存在一些技术或设计挑战,这使得大文件和大型repo支持非常困难.

很多相关的问题,但似乎都没有解释为什么这是一个很大的障碍:

git

12
推荐指数
2
解决办法
3363
查看次数

如何将Excel VBA放入git

我在Excel中继承了一些VBA并想把它放到git中.就目前而言,git将其视为二进制文件,并且不希望进行文件更改增量,而是复制整个文件.

我想将各个宏分解为文件以将它们放入git中.有没有标准的方法来做到这一点?

git excel

11
推荐指数
2
解决办法
4923
查看次数

git的大文件扩展名

Mercurial最近添加了官方的Large Files扩展.它解决了与存储基本上不可转换的文件相关的问题,视频游戏资产就是这种情况的常见例子.

Git有类似的功能吗?(目前还是在工作中?)

git mercurial binaryfiles large-files

10
推荐指数
1
解决办法
2474
查看次数

如何调试:git pull在git pull期间挂起(总是在54%)

我在我的存储库中添加了两个大文件(每个150MB),现在git pull总是挂起54%.我使用ping检查网络,尝试使用另一个,我做了一个git fsck等没有任何帮助.

  • 我该怎么调试呢?

  • 有没有办法一次只获取一个大文件?问题是我的本地git不知道最后一次提交= - (

git debugging pull

8
推荐指数
1
解决办法
1486
查看次数

如何通过非交互式压缩除最近的提交之外的所有提交来减少膨胀的Git仓库的大小?

我的Git repo有数百GB的数据,比如SQL备份,所以我试图删除旧的,过时的提交,因为它们会使一切变得越来越大.我需要一个快速的解决方案; 越快越好.

除了最新的提交之外,我如何压缩所有提交,而不必在交互式rebase中手动压缩每个提交?具体来说,我不想使用

git rebase -i --root
Run Code Online (Sandbox Code Playgroud)

我的回购

我有这些提交:

A .. B .. C ... ... H .. I .. J .. K .. L
Run Code Online (Sandbox Code Playgroud)

我想是这样的(在两者之间挤压的一切A,并H进入A):

A .. H .. I .. J .. K .. L
Run Code Online (Sandbox Code Playgroud)

有关如何压缩所有提交的答案,但我想保留一些最近的提交.我也不想压缩最近的提交.(特别是我需要保持前两个提交从顶部开始计数.)

git rebase git-rebase git-rewrite-history

8
推荐指数
1
解决办法
2888
查看次数