2013-03-19 9 views
6

Ho a relatively short Gist che dovrebbe utilizzare libgit2 per emulare la funzionalità del comando git pull. Sfortunatamente, non sta funzionando.Implementazione di 'git pull' con libgit2?

In sintesi, il frammento:

Secondo git_remote_stats(), gli oggetti vengono effettivamente recuperati. Ma la directory di lavoro non cambia per riflettere l'ultimo commit. Ho provato ad aggiungere:

git_checkout_head(repo, NULL); 

... ma questo non ha fatto differenza.

Inserimento:

git checkout master

... in un risultato terminali nel seguente output:

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

Come faccio a fast-forward?

risposta

3

È consigliabile eseguire git pull origin master

o

git fetch origin + git merge origin/master

Allora significa che è necessario la funzione libgit2 merge equivalente.

funzione di unione è disponibile in libgit2 v0.20

+0

realtà, c'è un ramo WIP (work in progress) contenente una funzione 'git_merge'. Sembra relativamente maturo e al momento sto cercando di usarlo. –

+0

Non importa. Penso che il ramo abbia bisogno di una ridefinizione. –

+0

niente di nuovo su questo? –