如何使用SVN和.NET以编程方式进行文件版本控制?

我们有一个报告生成器。 每日,它将其数据写入excel文件。

出于版本控制和文件数据安全的原因,我们需要更改此文件,并将更改提交到存储库。

你推荐任何你使用过的.net SVN API吗?

你应该看一下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); } 

您可以为您的存储库启用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来提交更改。

这是一个类似的问题。

有没有人知道Subversion的C#API?

这是另一种资源

适用于.NET的SVN库?