Использование GitSharp для изменения - PullRequest
1 голос
/ 08 ноября 2010

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

Ответы [ 2 ]

3 голосов
/ 09 ноября 2010

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

исправление ошибок в транспортном коде ( нажатие / выборка по http или ssh )

GitSharp README.txt имеет:

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

  • Загрузка через ssh, git, http и bundles.
  • Push через ssh, git. Git # еще не разграничил
    толкаемые пакеты, поэтому они могут быть намного больше, чем пакеты C Git.

Пример такого толчка (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();
} 
2 голосов
/ 09 ноября 2010

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

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

https://github.com/slluis/ngit

О NGIT

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

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

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

...