【发布时间】:2012-08-15 07:22:55
【问题描述】:
如何在 python dulwich 库中执行git pull 之类的操作。
【问题讨论】:
如何在 python dulwich 库中执行git pull 之类的操作。
【问题讨论】:
我没用过德威,但来自these doc's,可能是这样的:
from dulwich.repo import Repo
from dulwich.client import HttpGitClient
local = Repo.init("local", mkdir=True)
client = HttpGitClient('http://github.com/adammorris/')
remote_refs = client.fetch("history.js.git",local)
local["HEAD"] = remote_refs["refs/heads/master"]
此时,它没有加载文件,但我可以从本地路径执行“git checkout”,它会更新文件。
另外,看到了这些:
【讨论】:
.git目录下的一个pack文件。而且我只是不知道如何将它合并到主分支中。
完整示例。适用于Bitbucket。
from dulwich import index
from dulwich.client import HttpGitClient
from dulwich.repo import Repo
local_repo = Repo.init(LOCAL_FOLDER, mkdir=True)
remote_repo = HttpGitClient(REMOTE_URL, username=USERNAME, password=PASSWORD)
remote_refs = remote_repo.fetch(REMOTE_URL, local_repo)
local_repo[b"HEAD"] = remote_refs[b"refs/heads/master"]
index_file = local_repo.index_path()
tree = local_repo[b"HEAD"].tree
index.build_index_from_tree(local_repo.path, index_file, local_repo.object_store, tree)
用您的数据替换 LOCAL_FOLDER、REMOTE_URL、USERNAME、PASSWORD。
【讨论】: