【发布时间】:2009-04-27 20:14:08
【问题描述】:
我们有一个报告生成器。每天,它将数据写入一个 excel 文件。
出于版本控制和文件数据安全的原因,我们需要更改此文件,并将更改提交到存储库中。
您推荐您使用过的任何 .net SVN API 吗?
【问题讨论】:
我们有一个报告生成器。每天,它将数据写入一个 excel 文件。
出于版本控制和文件数据安全的原因,我们需要更改此文件,并将更改提交到存储库中。
您推荐您使用过的任何 .net SVN API 吗?
【问题讨论】:
您应该看看SharpSvn .NET 库。您可能需要签出和提交命令:
退房:
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);
}
【讨论】:
您也许可以为您的存储库打开Autoversioning。由于它使用 WebDAV,因此您可以将存储库视为网络驱动器(Web 文件夹)。并且可以把文件当作普通文件,打开、修改、保存即可。
如果是我,我会为 excel 数据文件创建一个新的存储库。我不认为我希望我的代码被自动版本化:)
【讨论】:
我们正在使用在预定义位置实际搜索已安装 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 是更好的选择
【讨论】:
最简单的方法是生成一个进程并调用 SVN.exe 提交您的更改。
这是一个类似的问题。
Does anyone know of a good C# API for Subversion?
这是另一个资源
【讨论】: