python - 如何从 gitpython 中的存储库路径获取变量中的 Ostream 或 Oinfo 列表?

标签 python git gitpython

我目前有一个没有 packfile 的有效 git 数据库,但由于 git-pack-objects(进程因堆栈转储文件而崩溃) 中的错误,我无法执行git repack命令。

我查看了错误,它与官方 git 项目的 C 性质相关(修复需要更改核心struct定义) 所以,这将需要很多时间来修复。

我发现唯一不使用 C 的替代方案是 gitdb (gitpython 的一部分)。但是我找不到如何使用 write_pack()功能。
或者更确切地说,我不知道如何构建 object_iter来自松散对象的数据库路径的参数。
我什至不知道 object_iter 中使用的确切类类型列表。

那么,如何为此目的使用 gitdb?

最佳答案

解决了!

#/usr/bin/python
import os,sys,zlib,gitdb
from gitdb.db import LooseObjectDB
from gitdb.pack import PackEntity
from gitdb.util import bin_to_hex,hex_to_bin

ldb=LooseObjectDB(sys.argv[1]+'/.git/objects')
PackEntity.create((ldb.stream(sha) for sha in ldb.sha_iter()),sys.argv[1]+'/.git/objects/pack',object_count=ldb.size(),zlib_compression=zlib.Z_BEST_COMPRESSION)

关于python - 如何从 gitpython 中的存储库路径获取变量中的 Ostream 或 Oinfo 列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33565280/

相关文章:

python - 导出 Scikit Learn 随机森林以在 Hadoop 平台上使用

git - 在 git 中,您可以查看文件移动后应用于文件的旧提交吗?

python setup_tools install_required

python - kivy 标签中的多行文本(python-bidi)

python - 使用python多线程不断获取输入

python - GitPython - 使用 ssh key 克隆 - 主机 key 验证失败

azure-functions - Azure 函数 - 应用服务计划 - 安装 git 包

GIT - 确定每小时编写的 # 行代码(已提交和未提交)

git - git 会复制我所有的文件吗?

GitPython:如何在不提供完整路径的情况下在目录内进行 git 克隆?