I have a relatively short Gist which is supposed to use libgit2 to emulate the functionality of the git pull command. Unfortunately, it's not quite working.
In summary, the snippet:
- calls
git_repository_open()to open the repository on disk - calls
git_remote_load()to get agit_remote *to the remote named "origin" - calls
git_remote_connect()with theGIT_DIRECTION_FETCHflag - calls
git_remote_download()to fetch objects from the remote
According to git_remote_stats(), objects are indeed being fetched. But the working directory doesn't change to reflect the latest commit. I tried adding:
git_checkout_head(repo, NULL);
...but that made no difference.
Entering:
git checkout master
...in a terminal results in the following output:
Already on 'master' Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
How do I fast-forward?