1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43

Вывод даты определеннного коммита в Console

15.02.2017, 10:44. Показов 975. Ответов 16
Метки git (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Можно ли вывести дату определенного коммита (имееться только название его) удаленно, с помощью метода Repository.ListRemoteReferences(link)?
Использую библиотеку LibGit2Sharp.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.02.2017, 10:44
Ответы с готовыми решениями:

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

Вывод в Console
В чем может быть причина того, что вывод в консоль не работает? В какое бы место в методе не вставляла, он не выводит ничего, хотя...

Вывод массива в Console.WriteLine
Здравствуйте! Задачу возможно немного некорректно описал в заголовке. Суть далее. Есть код: //Создание массива ...

16
Эксперт .NET
 Аватар для Usaga
12847 / 8875 / 1320
Регистрация: 21.01.2016
Сообщений: 33,318
15.02.2017, 11:02
pisalka30, наверное можно. Что сказано в документации про Repository.ListRemoteReferences(link) и про коммиты?
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
15.02.2017, 11:35  [ТС]
Usaga, Ничего не сказанно. Второй день мучаюсь уже. Весь гугл перерыл
0
Эксперт .NET
 Аватар для Usaga
12847 / 8875 / 1320
Регистрация: 21.01.2016
Сообщений: 33,318
15.02.2017, 11:50
pisalka30, метод Repository.ListRemoteReferences() принимает на вход URL и возвращает коллекцию каких-то сущностей (IEnumerable<Reference>). Соответственно тут либо перебирать всю эту коллекцию в поиске коммита и информации по нему (если таковой там есть), либо искать иные способы.

Я не очень понимаю, что мешает посмотреть исходники данной библиотеки (она же открытая) и найти нужный код (если он есть). Или на его основе свой вариант библиотеки собрать.
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
15.02.2017, 15:31  [ТС]
Usaga,
А как вывести всю коллекцию IEnumerable<Reference>?
У меня не выходит!
0
Эксперт .NET
 Аватар для Usaga
12847 / 8875 / 1320
Регистрация: 21.01.2016
Сообщений: 33,318
15.02.2017, 16:20
pisalka30, а мне кажется, что всё у тебя выходит.
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
15.02.2017, 16:21  [ТС]
Usaga, Это только hash коммита.. Дату не получаеться!
0
Эксперт .NET
 Аватар для Usaga
12847 / 8875 / 1320
Регистрация: 21.01.2016
Сообщений: 33,318
15.02.2017, 16:27
pisalka30, а с помощью самого GIT такое можно провернуть?..
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
15.02.2017, 16:34  [ТС]
Usaga, Ну да. Можно.
0
Эксперт .NET
 Аватар для Usaga
12847 / 8875 / 1320
Регистрация: 21.01.2016
Сообщений: 33,318
15.02.2017, 16:38
pisalka30, какой командой?
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
15.02.2017, 16:41  [ТС]
Usaga,
Windows Batch file
1
2
3
git remote add origin <remote reference>
git fetch
git log origin/master
0
Эксперт .NET
 Аватар для Usaga
12847 / 8875 / 1320
Регистрация: 21.01.2016
Сообщений: 33,318
15.02.2017, 16:44
pisalka30, ты в этом уверен? Пробовал данные команды выполнить не находясь в папке с клонированным репозиторием?
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
15.02.2017, 16:58  [ТС]
Usaga, я сам не уверен.
Но тимлид уверен
0
Эксперт .NET
 Аватар для Usaga
12847 / 8875 / 1320
Регистрация: 21.01.2016
Сообщений: 33,318
15.02.2017, 17:19
pisalka30, так что он тебе не покажет, как это сделать?)

Добавлено через 13 минут
pisalka30, есть костыльный вариант:

Кликните здесь для просмотра всего текста

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using LibGit2Sharp;
using System;
using System.Linq;
 
namespace GITExperiments
{
    class Program
    {
        static void Main(string[] args)
        {
            string repoPath = "someGitRepo";
            string repoUrl = "https://github.com/springlobby/springlobby";
 
            Repository.Init(repoPath);
            using (var repo = new Repository(repoPath)) {
                //var remote = repo.Network.Remotes.Add("origin/master", repoUrl);
                var remote = repo.Network.Remotes["origin/master"];
 
                repo.Network.Fetch(remote);
 
                foreach(var branch in repo.Branches) {
                    Console.WriteLine(branch.Commits.FirstOrDefault()?.Sha);
                }
            }
 
            Console.ReadKey();
        }
    }
}


Он он один чёрт вытягивает всё дерево коммитов репозитория, правда без клонирования.

Добавлено через 3 минуты
Т.е. GIT не умеет так, как тебе надо. Можно обойтись без клонирования, но все ченджы (changes) всё равно вытягивать нужно с сервера (fetch), а это основной объём информации и есть.

Правильный вариант в такой ситуации один: иметь прямой доступ к репозиторию на сервере, например в виде сервиса, который можно опрашивать, а он уже честно будет считывать нужную информацию из репозитория.
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
16.02.2017, 10:04  [ТС]
Usaga,
Правильный вариант в такой ситуации один: иметь прямой доступ к репозиторию на сервере, например в виде сервиса, который можно опрашивать, а он уже честно будет считывать нужную информацию из репозитория.
Ну все репозитории лежат на сервисе http://gitblit.com.
0
Эксперт .NET
 Аватар для Usaga
12847 / 8875 / 1320
Регистрация: 21.01.2016
Сообщений: 33,318
16.02.2017, 10:11
pisalka30, тогда пробуй вариант: git init, git remote add, git fetch предложенный в коде выше.

Добавлено через 40 секунд
Первый запуск будет долгий, последующие побыстрее, ибо подтягиваться будут только изменения.

Добавлено через 2 минуты
pisalka30, кстати, ты смотрел в справку того сервиса? Много интересного. Может быть можно даже извещалки прикрутить.
0
1 / 1 / 2
Регистрация: 01.04.2016
Сообщений: 43
16.02.2017, 11:11  [ТС]
Usaga, только-только пробывал.
Ладно. Обойдемся без даты
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.02.2017, 11:11
Помогаю со студенческими работами здесь

Вывод имени Git репозитория в Console
Вопрос такой: using LibGit2Sharp; using System; using System.Collections.Generic; using System.IO; using System.Linq; using...

Вывод в колонку с помощью Console.SetCursorPosition
Проблема вот в чем: Например вот есть код: Console.Write(&quot;1&quot;); ...

В чем отличие между методами Console.ReadLine() и Console.Read()
Всем добрый вечер! Скажите пожалуйста, в чем отличие между методами Console.ReadLine() и Console.Read()? В гугле информация расплывчатая,...

Console оператор if else и Console.Read(); ввод числа или слова
Делаю игры на платформе Unity. Все время писал на языке JavaScript. Но потом понял что с Явой никуда далеко не уйдешь, и купил книжки по Си...

Как осуществить вывод Console.WriteLine() отдельным классом
Вот пример программы static void Main(string args) { ListFiltering(); Console.ReadLine(); } ...


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

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

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru