2013-03-19 9 views
6

मेरे पास a relatively short Gist है जो का उपयोग git pull कमांड की कार्यक्षमता को अनुकरण करने के लिए किया जाता है। दुर्भाग्य से, यह काफी काम नहीं कर रहा है।libgit2 के साथ 'गिट पुल' कार्यान्वित करना?

सारांश में, टुकड़ा:

  • कॉल git_repository_open() डिस्क पर भंडार खोलने के लिए
  • कॉल git_remote_load()GIT_DIRECTION_FETCH झंडा
  • के साथ दूरदराज के नाम पर रखा गया "मूल"
  • कॉल git_remote_connect() करने के लिए एक git_remote * पाने के लिए
  • git_remote_download() को दूरस्थ
से ऑब्जेक्ट लाने के लिए कॉल करता है

git_remote_stats() के अनुसार, वस्तुओं को वास्तव में लाया जा रहा है। लेकिन कामकाजी निर्देशिका नवीनतम प्रतिबद्धता को दर्शाने के लिए नहीं बदलती है। मैंने जोड़ने की कोशिश की:

git_checkout_head(repo, NULL); 

... लेकिन इससे कोई फर्क नहीं पड़ता।

प्रवेश:

git checkout master

... निम्न उत्पादन में एक टर्मिनल परिणामों में:

Already on 'master' 
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.

मैं कैसे तेजी से आगे है?

उत्तर

3

आप चलाना चाहिए git pull origin master

या

git fetch origin + git merge origin/master

तो फिर तुम बराबर libgit2 मर्ज समारोह की जरूरत का मतलब है।

मर्ज समारोह

+0

असल libgit2 v0.20 में उपलब्ध है, एक WIP (प्रगति में काम) एक 'git_merge' समारोह युक्त शाखा है। यह अपेक्षाकृत परिपक्व लगता है और मैं वर्तमान में इसका उपयोग कर रहा हूं। –

+0

कोई बात नहीं। मुझे लगता है कि शाखा को रिबेसिंग की जरूरत है। –

+0

इस पर कुछ नया है? –

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