How to programatically do file versioning with SVN and .NET?

后端 未结 4 1954
无人共我
无人共我 2021-02-06 05:59

We have a report generator. Daily, it writes its data into a excel file.

For reasons of version controlling and file data safety, we need to alter this file, and commit

相关标签:
4条回答
  • 2021-02-06 06:27

    You might be able to turn on Autoversioning for your repository. Since it uses WebDAV, you can treat the repository just like a network drive (Web Folder). And you can treat the file as a normal file, just open, modify, and save.

    If it were me , I would create a new repository for the excel data files. I don't think I'd like my code being autoversioned :)

    0 讨论(0)
  • 2021-02-06 06:29

    We are using tool that actually searching for installed TortoiseSVN in predefined locations and using it command-line api. If that is for Windows and it's for not redistribution - it might be easier to do.

    Helpful code for 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    
    

    If you still want to do that task from code - SharpSVN http://sharpsvn.open.collab.net is better choiсe

    0 讨论(0)
  • 2021-02-06 06:32

    You should take a look at the SharpSvn .NET library. You will probably need checkout and commit commands:

    Checking out:

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

    Committing:

    string wcPath = "c:\\my working copy";
    SvnCommitArgs a = new SvnCommitArgs();
    a.LogMessage = "My log message";
    
    using (SvnClient client = new SvnClient())
    {
        client.Commit(wcPath, a);
    }
    
    0 讨论(0)
  • 2021-02-06 06:40

    The simplest would be to spawn a process and call SVN.exe to commit your changes.

    Here is a similiar question that was asked.

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

    Here is another resource

    SVN Libraries for .NET?

    0 讨论(0)
提交回复
热议问题