Git提取在git-upload-pack上挂起

shstlldc  于 2022-11-27  发布在  Git
关注(0)|答案(4)|浏览(339)

似乎是随机的,我们的本地回购不能再从我们的矮黑猩猩服务器上获取。(大约4GB)给不同的人,在不同的时间,当我们试图在本地提取时,一开始只是每隔几个月,但现在它的频率越来越高,今天在同一时间发生在很多地方回购上。现在我们通过移动一个工作的.git文件夹来解决这个问题。
它快速打印一些POST git-upload-pack (gzip X to Y bytes),然后挂起半小时到一小时。
如果我从对象目录中删除一个包文件,它会抱怨丢失了一些东西,然后开始正确地获取,但仅限于git-upload-pack
我尝试过各种方式来升级repackgc,但都没有效果。我尝试过将服务器端和客户端的git从1.8.4升级到1.9。
clone ing也有同样的问题,但是升级Bonobo解决了这个问题,尽管它是相同版本的git。昨天一个新克隆的repo还能工作,但是今天它也有同样的问题。
有趣的是我们有很多dll和pdb在里面.它已经使用了一年了,是用git-svn从SVN repo导入的.
这是痕迹

$ GIT_TRACE=1 git fetch -v
trace: built-in: git 'fetch' '-v'
trace: run_command: 'git-remote-https' 'origin' 'https://xxx
/yyy.git'
trace: run_command: '"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore
/git-credential-winstore.exe" get'
trace: run_command: '"C:/Program Files (x86)/GitExtensions/GitCredentialWinStore
/git-credential-winstore.exe" store'
trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'
trace: run_command: 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack' '--in
clude-tag' '--thin' 'https://xxx/yyy.git/'
trace: built-in: git 'fetch-pack' '--stateless-rpc' '--stdin' '--lock-pack' '--i
nclude-tag' '--thin' 'https://xxx/yyy.git/'
POST git-upload-pack (gzip 2057 to 1096 bytes)
POST git-upload-pack (gzip 2307 to 1222 bytes)
POST git-upload-pack (gzip 3657 to 1914 bytes)
POST git-upload-pack (gzip 6207 to 3192 bytes)
POST git-upload-pack (gzip 12607 to 6374 bytes)

谷歌显示,有些人有这个问题,但没有提到(升级倭黑猩猩等)工作。

eit6fx6z

eit6fx6z1#

git在内部使用curl,所以使用下面的配置设置来调试:

    • 客户端配置**:
git config --global http.postBuffer 524288000
    • 客户端环境变量**:
  • GIT_弯曲_详细信息= 1
  • GIT_HTTP_最大请求数= 16
    • 服务器配置**:
  • web.config中增加<requestLimits maxAllowedContentLength= [所需大小] >;大小可以是1073741824
  • web.config中增加<httpRuntime maxRequestLength= [所需大小] >;请尝试使用值1024000

此外,以下设置可以自动中止慢速传输:

  • GIT HTTP低速时间
  • GIT HTTP低速限制

如果HTTP传输速度低于GIT_HTTP_LOW_SPEED_LIMIT的时间超过GIT_HTTP_LOW_SPEED_TIME,则传输将中止。

n3ipq98p

n3ipq98p2#

我知道这是一个老问题,但我有一个类似的问题,并希望分享我的经验。我从来没有真正得到的原因,但在更新到最新的Git(在服务器上-即使bonobo船舶与自己的版本),检查权限,像git fsck命令升级Bonobo,甚至添加了大量的额外日志代码,这是什么为我做的。
Bonobo在服务器上创建了一个空的repo,我可以成功地从服务器上直接克隆它,并且可以执行fetch/pull等操作。这促使我尝试复制repo并将其替换为副本。因此,在临时文件夹中:
git clone [path_to_Bonobo repo] temp_repo
然后将Bonobo git repo从仓库根文件夹中移出,进入Bonobo根文件夹并:
git clone --mirror [path_to_temp_repo] [original_repo_name]
我也比划了一个:
git fetch --prune
git push --prune [path_to_temp_repo] +refs/remotes/origin/*:refs/heads/* +refs/tags/*:refs/tags/*
在这之后,矮黑猩猩又高兴地开始拉和推。

xfb7svmp

xfb7svmp3#

在我的例子中,我在bitbucket服务器上的git-upload-pack中遇到了这个挂起。结果问题是:我ssh密钥上有一个密码短语,但由于某种未知原因,没有提示要求输入密码。
删除密码短语解决了此问题。
我只是把这个贴出来,以防它能帮助另一个灵魂。

p3rjfoxz

p3rjfoxz4#

在运行git pull origin YOUR_BRANCH_NAME之前,运行以下命令

git config pull.rebase false

相关问题