Использование 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: некоторые классы поддержки, необходимые для вышеуказанных библиотек.