【问题标题】:How to programatically do file versioning with SVN and .NET?如何以编程方式使用 SVN 和 .NET 进行文件版本控制?
【发布时间】:2009-04-27 20:14:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: c# .net svn api c#-3.0


    【解决方案1】:

    您应该看看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);
    }
    

    【讨论】:

      【解决方案2】:

      您也许可以为您的存储库打开Autoversioning。由于它使用 WebDAV,因此您可以将存储库视为网络驱动器(Web 文件夹)。并且可以把文件当作普通文件,打开、修改、保存即可。

      如果是我,我会为 excel 数据文件创建一个新的存储库。我不认为我希望我的代码被自动版本化:)

      【讨论】:

        【解决方案3】:

        我们正在使用在预定义位置实际搜索已安装 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 是更好的选择

        【讨论】:

        • 我建议在 TortoiseProc (gui) 上使用 'svn.exe' (console) 来从批处理文件中使用 Subversion,除非你想显示对话框 :)
        【解决方案4】:

        最简单的方法是生成一个进程并调用 SVN.exe 提交您的更改。

        这是一个类似的问题。

        Does anyone know of a good C# API for Subversion?

        这是另一个资源

        SVN Libraries for .NET?

        【讨论】:

          猜你喜欢
          • 2013-01-29
          • 2015-12-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-24
          • 1970-01-01
          • 1970-01-01
          • 2012-02-23
          相关资源
          最近更新 更多