Как я могу проверить, если тянуть нужно, используя libgit2 в C ++?

Я хочу проверить, есть ли у меня последняя версия программы. Я поделился своей программой с bitbucket.org, и я хочу, чтобы мой код на С ++ писал мне, если мне нужно получить последнюю версию или у меня уже есть последняя версия.

1

Решение

Во-первых, вам нужно получить данные, чтобы получить состояние удаленных веток отслеживания. Нет другого способа проверить, была ли ваша ветка обновлена ​​на удаленном компьютере. Многие инструменты автоматически выбирают периодически (например, каждые 10 минут) для этой цели.

Тогда сравните свою местную ветку с ее апстримом. Один из способов сделать это с помощью libgit2 — использовать revwalk функциональность. если ты git_revwalk_push_ref вверх по течению и git_revwalk_hide_ref Затем локальная ветвь обходит диапазон, вы можете подсчитать, сколько коммитов находится за вашей локальной веткой. Сделайте обратное, чтобы получить количество коммитов вперед.

Пример:

git_revwalk *walker;
git_revwalk_new(&walker, repo);
git_revwalk_push_ref(walker, "refs/remotes/origin/master");
git_revwalk_hide_ref(walker, "refs/heads/master");

git_oid id;
int count = 0;
while (!git_revwalk_next(&id, walker))
++count;

// 'count' is the difference between remote and local
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector