Использование GitSharp для изменения изменений

Как можно использовать GitSharp (Git для.NET и Mono) для изменения изменений на удаленном сервере через SSH?

2 ответа

Решение

Теоретически, да, последний выпуск GitSharp 0.3 (июнь 2010 г.) включает в себя:

исправление ошибок в транспортном коде (загрузка / извлечение через http или ssh)

GitSharp README.txt имеет:

Транспорт объекта

  • Получить через ssh, git, http и связки.
  • Нажмите через SSH, GIT. Git# еще не разграничить
    толкаемые пакеты, поэтому они могут быть намного больше, чем пакеты C Git.

Вы найдете пример такого push (over ssh) в этой теме:

Repository repository = new Repository(@"\path\to\my_repos");
repository.Index.Add(@"\path\to\my_file");

Commit commited = repository.Commit("Testing fromGitC#", new Author("Author", "...@aCompany.com"));

if(commited.IsValid) {
    PushCommand pushCommand = new PushCommand {
        RefSpecs = new List<RefSpec> {
           new RefSpec("HEAD", "refs/for/master")
        },
        Force = true,
        Repository = repository
    };
    pushCommand.AddAll();
    pushCommand.Execute();
} 

GitSharp основан на ручном порте JGit с Java на C#. Есть другой проект, делающий это полуавтоматически (с целью добавления в MonoDevelop)

http://foodformonkeys.blogspot.com/2010/10/ngit.html

https://github.com/slluis/ngit

О НГИТ

NGit - это порт JGit [1] для C#. Этот порт генерируется полуавтоматически с использованием Sharpen [2], утилиты преобразования Java в C#.

NGit обеспечивает всю функциональность, реализованную JGit, включая все примитивы манипулирования репозиторием и транспортные протоколы. Поддержка SSH обеспечивается портом jsch [3], включенным в проект.

Проект состоит из 4 библиотек: - NGit: библиотека git. - NGit.Test: юнит-тесты для NGit - NSch: порт jsch. - Sharpen: некоторые классы поддержки, необходимые для вышеуказанных библиотек.

Другие вопросы по тегам