如何处理大git存储库

时间:2015-03-09 18:04:50

标签: git version-control jenkins

我们处于绝对不知道如何解决的位置。 问题是我们有2.56 GiB repo-size。主要问题是克隆存储库时git-server的RAM使用情况:服务器将打包存储库,一段时间后,连接被删除(或者其他事情会阻止克隆!)。服务器上的其他服务(另一个git-repo和jenkins)将进行交换,不再可用。

以下是有关我们的回购的一些信息:

  • git count-objects -vH说{1}
  • 应用程序中的一个框架(单独!)~350 MB
  • 另一个框架有~150 MB
  • 还有一些框架,但尺寸较小
  • 一个* .pack,大小为2.75 GB

大框架更新2-3次。所以我们认为(我们并不是真正的g g :) :)历史包含了大型框架的旧版本。

我们看一下git repackgit filter-branch。但展位,当我们正确理解时,不能解决我们的问题。

我们无法移除我们的一个大框架,因为我们需要它来开发。当我们从历史记录中删除它时,我们无法再结帐到旧版本。

我们试图将大框架转移到单独的git回购中。但是那个问题并没有解决问题,因为我们的历史已经非常重要了。

那么我们怎样才能在不丢失历史的情况下解决问题呢?!

{1}

count: 829
size: 4.82 MiB
in-pack: 23365
packs: 2
size-pack: 2.56 GiB
prune-packable: 13
garbage: 1
size-garbage: 6.00 KiB

*** ***编辑

当我说:

时,这是我的输出
  

git clone https://git.repo.url.git

remote: Counting objects: 23942, done.
remote: warning: suboptimal pack - out of memory
remote: fatal: Out of memory, malloc failed
remote: aborting due to possible repository corruption on the remote side.
fatal: protocol error: bad pack header

当我制作git init并设置此配置时(because of this commend):

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
    packedGitLimit = 128m
    packedGitWindowSize = 128m
[pack]
    deltaCacheSize = 128m
    packSizeLimit = 128m
    windowMemory = 128m 

我的输出是:

remote: Counting objects: 23942, done.
remote: warning: suboptimal pack - out of memory

0 个答案:

没有答案