2012-08-15 6 views

उत्तर

5

मैं Dulwich का इस्तेमाल किया है नहीं है, लेकिन 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 चेकआउट" कर सकता है , और यह फाइलों को अद्यतन किया।

+0

हां, fetch फ़ंक्शन '.git' निर्देशिका के अंतर्गत एक पैक फ़ाइल में खींच जाएगा। और मुझे नहीं पता कि इसे मास्टर शाखा में कैसे विलय करना है। – Determinant

+0

ऐसा लगता है जैसे fetch() को रिपो के समान पैक में पैक आयात करना चाहिए। मास्टर शाखा में इसे मर्ज करने के लिए do_commit() का उपयोग करना संभव है? http://stackoverflow.com/questions/6904734/in-dulwich-how-do-i-commit-to-a-branch-instead-of-to-head –

+0

मुझे डर नहीं है ... – Determinant

1

पूर्ण उदाहरण:

इसके अलावा, इन को देखा। 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 को बदलें।

संबंधित मुद्दे