Удаленный ответ при нажатии с помощью LibGit2Sharp

В LibGit2Sharp есть способ получить удаленный ответ при выполнении Push?

При использовании чего-то вроде командной строки git bash вы получите следующий вывод в консоли:

remote: Updating branch 'master'.
remote: Updating submodules.
remote: Preparing deployment for commit id '3fe0a458ac'.
remote: Generating deployment script.
remote: Running deployment command...
remote: Handling Basic Web Site deployment.

PushOptions обеспечивает сборку пакета, передачу и статус ошибки во время операции Push, но в идеале я хотел бы перехватить удаленный ответ (как указано выше) и передать его клиенту. Любой способ сделать это с помощью libgit2/LibGit2Sharp?

Вот фрагмент моего действия Push с использованием LibGit2Sharp версии 0.16.0.0.

using (var repository = new Repository(sourceRepositoryPath))
{
    var pushOptions = new PushOptions
    {
        Credentials = new Credentials { Username = remoteUser, Password = remotePassword },
        OnPackBuilderProgress = (stage, current, total) =>
        {
            Trace.WriteLine(string.Format("Pack Building Progress {0} out of {1}, Stage {2}",
                current, total, stage));
            return true;
        },
        OnPushStatusError = errors =>
        {
            Trace.WriteLine(errors);
        },
        OnPushTransferProgress = (current, total, bytes) =>
        {
            Trace.WriteLine(string.Format("Transfer Progress {0} out of {1}, Bytes {2}", current, total, bytes));
            return true;
        }
    };
    string pushRefSpec = string.Format("+{0}:{0}", "refs/heads/master");
    var remote = repository.Network.Remotes["origin"];
    repository.Network.Push(remote, pushRefSpec, pushOptions);
}

person sitereactor    schedule 03.03.2014    source источник


Ответы (1)


Эта информация отправляется серверным процессом по определенному каналу, называемому «прогресс», что требует соглашения между обеими сторонами о том, что они поддерживают это расширение. Сама libgit2 научилась это делать, но libgit2sharp еще не был обновлен для поддержки этого дополнительного канала.

Как только это произойдет, он будет выглядеть как OnProgress Fetch.

person Carlos Martín Nieto    schedule 03.03.2014
comment
@sitereactor: Может быть, вы могли бы открыть запрос функции, чтобы проект мог отслеживать это? - person nulltoken; 03.03.2014
comment
@nulltoken Да, я сделаю это. Также рассмотрю функцию Fetch OnProgress и посмотрю, смогу ли я понять, как следует реализовать что-то подобное (для Push OnProgress), и в этом случае я отправлю запрос на извлечение. - person sitereactor; 03.03.2014
comment
@sitereactor: Круто! Мы будем рады помочь вам увидеть такой запрос на вытягивание слитым. - person nulltoken; 04.03.2014