подключение к SVN в веб-приложении asp.net - PullRequest
4 голосов
/ 17 ноября 2009

Насколько сложно создать репозиторий через c #? А как насчет просмотра файла исходного кода или сравнения в веб-приложении?

Есть ли API, к которому мне нужно подключиться, или это весь пользовательский код, который я должен написать?

Ответы [ 6 ]

4 голосов
/ 17 ноября 2009

SharpSVN предоставляет вам полный API. Он не так прост в использовании и, как правило, довольно медленный, если вы не кешируете возвращаемые предметы.

SharpSvn является привязкой Клиентский API Subversion для .Net 2.0 приложения, содержащиеся в наборе Развертываемые xcopy библиотеки DLL. Известные пользователи этого API (в настоящее время):

  • AnkhSVN 2.X - Поддержка Subversion для Visual Studio 2005 и 2008
  • CollabNet Desktop для Visual Studio
  • SharpDevelop (#develop)
  • MonoDevelop
  • СВН-монитор
  • И много-много других проектов ..

Вот пример из проекта ASP.NET, через который я получил около 50%, который отображал все элементы из репозитория:

using (SvnClient client = new SvnClient())
{
    client.LoadConfiguration(Server.MapPath("/"));
    SvnUriTarget target = new SvnUriTarget("http://wush.net/svn/yourusername/", SvnRevision.Head);
    SvnListArgs args = new SvnListArgs();

    Collection<SvnListEventArgs> svnList = new Collection<SvnListEventArgs>();
    client.Authentication.DefaultCredentials = new NetworkCredential("username", "password);
    args.Depth = SvnDepth.Children;
    client.GetList(target, args, out svnList);

    foreach (var item in svnList)
    {
        // display the list  
    }

}
1 голос
/ 17 ноября 2009

Я написал приложение .net, которое широко использует SVN и может сказать, что вам вообще не нужны привязки.

Их сложнее использовать и они не обновлены - новые версии SVN выходят почти каждые пару месяцев, и их трудно догнать. Также сложнее распространять новые версии привязок, когда они в конечном итоге выходят.

В большинстве случаев достаточно вызвать svn.exe и svnadmin.exe. Оба являются неинтерактивными инструментами, и если вы предоставите все необходимые параметры, все будет в порядке.

Если вам не нужно выполнять ОЧЕНЬ много операций svn, перейдите к инструментам командной строки - вызовите их из приложения / веб-сайта .NET.

Еще одним преимуществом является то, что вам не нужно обрабатывать проблемы с x86 / x64 - если вы используете привязки, вы должны убедиться, что вы соответствуете комбинации svn dll, вашей программы и ОС.

1 голос
/ 17 ноября 2009

SharpSVN выглядит как один из самых активных API, два других - SubversionSharp и SVN.NET - не изменились за месяцы (я думаю, что в какой-то момент они «слились», прежний определенно отсутствует).

Он также имеет преимущество, исходящее от CollabNet, что делает его наиболее "официальным" и, вероятно, надежным.

Если вам нужна поддержка нескольких платформ, используя Mono, вам придется проверить, хотя год назад она не была полностью переносимой, особенно в отношении обратных вызовов аутентификации.

1 голос
/ 17 ноября 2009

Существует пара интерфейсов C # для API клиента Subversion SubversionSharp и SVN.net . Однако создание репозитариев осуществляется сервером API. Вы можете просто выполнить эту часть, а затем обработать все остальное через API

1 голос
/ 17 ноября 2009

Что ж, проект SVN не предоставляет прямой поддержки C # (или .NET Framework в этом отношении) - поскольку .NET не является кроссплатформенным. Есть привязки C, и я недавно натолкнулся на проект привязок C # с открытым исходным кодом. Возможно, вы захотите взглянуть на Subersion Sharp . Кажется, он поддерживает большую часть того, что вас интересует.

Вот цитата с сайта:

SubversionSharp - это оболочка C #, которая полностью покрывает клиентский API Subversion SCM. Простой доступ к Subversion API предоставляется без ущерба для функциональности. Эта библиотека является отправной точкой для простой интеграции репозиториев Subversion в любое управляемое программное обеспечение .NET. Эти привязки C # для Subversion были написаны для переносимости и производительности. Эта библиотека теперь доступна для сред Mono / Linux и .NET / Windows.

И на самом деле, скорее всего, вас заинтересует ветка SVN.NET , поскольку она поддерживает .NET 2.0, а SubervsionSharp - нет. Конечно, если вы разрабатываете с более новой версией .NET 3.0 / 3.5, вы сможете получить исходный код и скомпилировать его для более новых версий.

Я изучал его на днях для аналогичных целей, но с тех пор меня немного обескуражили из-за другой высокоприоритетной работы ..

0 голосов
/ 17 ноября 2009

DotNetSvn - это еще один проект, который пытается создать оболочку для Subversion в .net. Если вы хотите увидеть, как другие проекты создали свои собственные оболочки, вы можете взглянуть на исходный код TortoiseSVN и, возможно, получить некоторые идеи об этом.

Удачи в вашем проекте и надеюсь, что это помогло некоторым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...