Как программно сделать управление версиями файлов в SVN и .NET? - PullRequest
8 голосов
/ 28 апреля 2009

У нас есть генератор отчетов. Ежедневно он записывает свои данные в файл Excel.

В целях контроля версий и безопасности файлов нам необходимо изменить этот файл и зафиксировать изменения в хранилище.

Рекомендуете ли вы .net SVN API, который вы использовали?

Ответы [ 4 ]

11 голосов
/ 28 апреля 2009

Вам стоит взглянуть на библиотеку SharpSvn .NET. Вам, вероятно, понадобятся команды checkout и commit:

Выезд:

string wcPath = "c:\\my working copy";
using (SvnClient client = new SvnClient())
{
    client.CheckOut(new Uri("http://server/path/to/repos"), wcPath);
}

Совершение:

string wcPath = "c:\\my working copy";
SvnCommitArgs a = new SvnCommitArgs();
a.LogMessage = "My log message";

using (SvnClient client = new SvnClient())
{
    client.Commit(wcPath, a);
}
1 голос
/ 28 апреля 2009

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

Полезный код для cmd:

@echo off
if exist "%ProgramW6432%\TortoiseSVN\bin\TortoiseProc.exe" set patht=%ProgramW6432%
if exist "%ProgramFiles%\TortoiseSVN\bin\TortoiseProc.exe" set patht=%ProgramFiles%
if exist "%ProgramFiles(x86)%\TortoiseSVN\bin\TortoiseProc.exe" set patht=%ProgramFiles(x86)%

echo Placing SVN Commit
"%patht%\TortoiseSVN\bin\TortoiseProc.exe" /command:commit /path:"%CD%" /notempfile    

Если вы все еще хотите выполнить эту задачу из кода - SharpSVN http://sharpsvn.open.collab.net - лучший выбор

1 голос
/ 28 апреля 2009

Возможно, вы сможете включить Autoversioning для своего хранилища. Поскольку он использует WebDAV, вы можете обращаться с хранилищем как с сетевым диском (веб-папка). И вы можете рассматривать файл как обычный файл, просто открывайте, изменяйте и сохраняйте.

Если бы это был я, я бы создал новый репозиторий для файлов данных Excel. Я не думаю, что я хотел бы, чтобы мой код был автоверсионным:)

0 голосов
/ 28 апреля 2009

Самое простое - запустить процесс и вызвать SVN.exe. совершить ваши изменения.

Вот похожий вопрос, который был задан.

Кто-нибудь знает хороший API C # для Subversion?

Вот еще один ресурс

Библиотеки SVN для .NET?

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