最近几天,每次推送到我们的git存储库都导致了服务器上的自动打包.
发生这种情况时客户端上的输出:
~pdr git:master ??? git push origin master
Counting objects: 44, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (26/26), done.
Writing objects: 100% (27/27), 4.67 KiB, done.
Total 27 (delta 14), reused 0 (delta 0)
Auto packing the repository for optimum performance.
Run Code Online (Sandbox Code Playgroud)
打包发生在服务器上,ps显示这些git命令在工作:
git 23252 0.0 0.0 68520 552 ? S 15:21 0:00 sshd: git@notty
git 23253 0.0 0.0 9660 540 ? Ss 15:21 0:00 git shell -c git-receive-pack 'repositories/pdr.git'
git 23254 0.0 0.0 16644 2136 ? S 15:21 0:00 git receive-pack repositories/pdr.git
git 23258 0.0 0.0 9660 624 ? S 15:21 0:00 git gc --auto --quiet
git 23261 0.0 0.0 9660 504 ? S 15:21 0:00 git repack -d -l -q -A
git 23262 0.0 0.0 4104 376 ? S 15:21 0:00 /bin/sh /usr/lib/git-core/git-repack -d -l -q -A
git 23275 267 92.2 9569724 3742468 ? Sl 15:21 23:07 git pack-objects --keep-true-parents --honor-pack-keep --non-empty --all --reflog --unpack-unreachable --local -q --delta-base-offset /home/git/repositories/pdr.git/objects/.tmp-23262-pack
Run Code Online (Sandbox Code Playgroud)
我在服务器上运行了一个手册"git gc",然后是"git fsck".没有错误消息,但在下一次推送时它再次开始自动打包.
这是在运行带有Git 1.7.0.4的Ubuntu Server 10.04 LTS的服务器上.
Emi*_*Sit 26
Git 根据两个标准决定是否自动gc :
.idx
的.git/objects/pack
?).git/objects/17
?)如果由于某种原因Git无法合并包文件或删除该目录中的松散对象,它会认为下次需要再次自动gc.
我会检查上面引用的两个目录的内容,看看是否符合(默认)标准,看看重新打包后标准是否发生变化.
未能完成该过程的一些原因可能是:
git config pack.packSizeLimit
而不适合指定的包大小(请参阅默认为无限但可能被用户覆盖)当然,您还应确保通过查看以下内容未合理地设置与gc相关的可调参数:
git config -l | grep gc
Run Code Online (Sandbox Code Playgroud)
有关其他一些细节,请参阅Git Internals上的Git SCM一书.
归档时间: |
|
查看次数: |
6048 次 |
最近记录: |