Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
1

Подключение к удаленному Git репозиторию и вывод названия коммита

27.01.2017, 10:10. Просмотров 1557. Ответов 15
Метки нет (Все метки)


Помоги решить пробему.
Я не понимаю как мне сделать подключение к удаленному репозиторию программно и вывод название коммитов в консоль, без клонирования на локальную машину..
Если кто сталкивался с такой проблемой, помогите!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.01.2017, 10:10
Ответы с готовыми решениями:

Вывод даты определеннного коммита в Console
Добрый день! Можно ли вывести дату определенного коммита (имееться только название его)...

Git обьеденить два коммита оставив автора комитов
Можно ли как то обьеденить два коммита оставив при этом автора этих коммитов? К примеру: ...

Git добавление коммита перед первым имеющимся в репозитарии
Для существующего уже некоторое время проекта в какой-то момент был создан git репозитарий. Был...

Подключение к удаленному wi-fi
Добрый день! Сам не очень понимаю в этой теме, по этому обращаюсь сюда с таким вопросом: У меня...

15
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,100
27.01.2017, 10:21 2
pisalka30, а я, в свою очередь, не понимаю о чём тут речь. Какой репозиторий? GITHUB? Какая библиотека используется? Или самопал? О чём речь вообще?
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
27.01.2017, 11:05  [ТС] 3
Подключение к GitHub репозиторию. Библиотека LibGit2Sharp.
Нужно консольное приложение, которое удаленно подключается к репозиторию (не скачивая его на компьютер), считывает название последнего коммита, и выводит его в консоль. /
Для чего это нужно?
Нужно это для того, чтобы в конечном итоге проверять репозиторий на наличие новых коммитов, и если они есть открывать build в TFS
0
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,100
27.01.2017, 11:15 4
pisalka30, примеры кода на вики проекта смотрел?
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
27.01.2017, 12:03  [ТС] 5
Usaga, смотрел. Нет там ничего, либо я не нашел
0
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,100
27.01.2017, 12:53 6
pisalka30, там внизу пример есть. Рекомендую обратить особое внимание на такую строку:

C#
1
var headCommit = repo.Head.Commits.First();
Добавлено через 35 секунд
Вообще, пример достаточно простой и понятный.
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
27.01.2017, 13:09  [ТС] 7
Спасибо.
Вывод последнего коммита не затрудняет.
А подключение к gitblit'у не могу реализовать, без клонирования!
0
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,100
27.01.2017, 13:25 8
pisalka30, что за gitblit? В первоначальной постановке вопроса этого не было.
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
27.01.2017, 15:10  [ТС] 9
GitBlit - это подобие GitHub, сути не меняет вовсе.

Добавлено через 7 минут
Usaga, Можешь оставить свой скайп или как я могу с тобой связаться, если не против помочь с задачей?
0
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,100
27.01.2017, 15:13 10
pisalka30, я не настолько свободен, чтобы персонально чьи-то проблемы решать

Покажи что и как сделал (с примерами кода) и расскажи что хотел сделать и что в итоге получилось. Больше информации нужно.
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
27.01.2017, 15:27  [ТС] 11
Usaga, Задача: В этой задаче нужна console app, которая запускается 1 раз в минуту, смотрит есть ли изменения в Git репозиториях, которые нужно слушать, и если есть – то запускает соответствующий build на Team Services Online.

Первый раз я реализовал эту задачу: Клонировал репозиторий на компьютер, сохранял имя последнего коммита в файл (last.txt), после удалял репозиторию, а файл(last.txt) оставлял в котором записано имя последнего коммита. При втором запуске программы, когда файл(last.txt) с записанным именем коммита был уже, программа клонировала репозиторий, создавала новый файл(this.txt) записывала в него так же название последнего коммита и потом сравнивала last.txt и this.txt по содержимым и если различие были, то открывал build в TSO.
НО ДАННЫЙ СПОСОБ ПОДХОДИТ ТОЛЬКО ЕСЛИ ИСПОЛЬЗУЕТСЯ ОДИН РЕПОЗИТОРИЙ, ИБО МНОГО РЕПОЗИТОРИЕВ ПРОГРАММА ЗА МИНУТУ НЕ СМОЖЕТ УСПЕТЬ СКАЧАТЬ ФИЗИЧЕСКИ.

Поэтому мне нужно подключиться к удаленному репозиторию и вытянуть от туда названия последнего коммита.
А я не знаю как это сделать с удаленным репозиторием, не клонируя его.
0
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,100
27.01.2017, 15:36 12
pisalka30, так. А теперь на пальцах объясни мне, почему это решение тебе не подходит.

Разве у такой штуки как Team Services Online не своего поллера\сервиса для опроса репозиториев удалённых?
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
27.01.2017, 15:49  [ТС] 13
Usaga, Это решение мне как раз таки подходит, но подключиться вначале к репозиторию я не знаю как
0
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,100
27.01.2017, 15:52 14
pisalka30, код из примера не работает?

C#
1
using (var repo = new Repository("path\\to\\repo.git"))
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
27.01.2017, 16:06  [ТС] 15
Usaga, нет. Работает только с локальным репозиторием.
0
Эксперт .NET
8655 / 6117 / 1019
Регистрация: 21.01.2016
Сообщений: 23,100
27.01.2017, 17:45 16
Лучший ответ Сообщение было отмечено pisalka30 как решение

Решение

pisalka30, вот так работает нормально:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using LibGit2Sharp;
using System;
using System.Linq;
 
namespace GITExperiments
{
    class Program
    {
        static void Main(string[] args)
        {
            var refer = Repository.ListRemoteReferences("https://github.com/libgit2/libgit2sharp.git").FirstOrDefault() as SymbolicReference;
            Console.WriteLine(refer.Target.TargetIdentifier);
 
            Console.ReadKey();
        }
    }
}
Получаем хеш-код последнего коммита. Это то, что тебе нужно. Только проверки на null делай.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2017, 17:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Подключение к удаленному РС
Есть нойтбук asus x5dij подключенный по wi-fi через cisco ip-адрес назначается DHCP сервером. Когда...

Подключение к удаленному принтеру
стоит роутер. Через витую пару подключен ПК с принтером. Хочу чтобы сидя за ноутом(вифи) можно было...

Подключение к удаленному серверу
Здравствуйте, для ознакомительных целей арендовал сервер. На сервере стоит Debian 7 (хотя это не...

Подключение к удаленному серверу БД
Здравствуйте, есть IP-адрес удаленного сервера и алиас БД, на удаленном сервер установлен FireBird...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.