#c# #svn #tortoisesvn #sharpsvn
#c# #svn #tortoisesvn #sharpsvn
Вопрос:
Я создал локальный репозиторий на своем компьютере. Затем я выполнил проверку svn для доступа к этому репозиторию, и я могу добавлять и фиксировать файлы с помощью tortoisesvn.
Репозиторий — это ‘file /// C:/ Testing/ repo’
и локальная проверка «C:Testingsvnrepo «
Я попытался добавить и зафиксировать некоторые изменения в файле с помощью sharpsvn. Я получаю исключения:
Unable to connect to a repository at URL 'file///C:/Testing/repo'
но когда я открываю tortoisesvn, я могу получить доступ к этому репозиторию.
Мой код:
Функция добавления работает, я получаю только сообщение об ошибке при фиксации.
.
.
.
foreach ( string path in files )
{
Add(path);
}
Commit(commitPath, key);
.
.
.
public bool Commit(string path, string message)
{
using ( SvnClient client = new SvnClient() )
{
SvnCommitArgs args = new SvnCommitArgs
{
LogMessage = message,
ThrowOnError = true,
ThrowOnCancel = true
};
try
{
return client.Commit(path, args); # <--- Exception
}
catch ( Exception e )
{
if ( e.InnerException != null )
{
throw new Exception(e.InnerException.Message, e);
}
throw e;
}
}
}
Я вижу, что файлы добавляются в проводник, но он не фиксируется. У меня нет никакой аутентификации, настроенной для репозитория, поэтому я понятия не имею, в чем может быть проблема.
Ответ №1:
Скорее всего, ваш TortoiseSVN создал более новый формат репозитория, чем SharpSvn может прочитать. Из-за нехватки рабочей силы SharpSvn в настоящее время немного отстает.
Обходные пути:
- Используйте локальный SVN-сервер (SvnServe можно легко настроить)
- Создайте репозиторий в более старом формате, совместимом с SharpSvn (возможно, вам потребуется использовать svn.exe инструмент командной строки, я не уверен, предоставляет ли Tortoise пользовательский интерфейс для выбора более старых версий формата репозитория).