使用SharpSVN添加文件

jan*_*jan 5 c# svn sharpsvn

我想使用SharpSVN将目录下的所有未版本控制的文件添加到SVN.

我首先在命令行上尝试了常规的svn命令:

C:\temp\CheckoutDir> svn status -v
Run Code Online (Sandbox Code Playgroud)

我看到所有子目录,已经签入的所有文件,一些标有"?"的新文件,没有"L"锁定指示

C:\temp\CheckoutDir> svn add . --force
Run Code Online (Sandbox Code Playgroud)

这导致添加了已经在版本控制下的子目录中的所有新文件.

我想用SharpSVN做同样的事情.我将一些额外的文件复制到同一目录并运行此代码:

...
using ( SharpSvn.SvnClient svn = new SvnClient() )
{
    SvnAddArgs saa = new SvnAddArgs();
    saa.Force = true;
    saa.Depth = SvnDepth.Infinity;
    try
    {
        svn.Add(@"C:\temp\CheckoutDir\." , saa);
    }
    catch (SvnException exc)
    {
        Log(@"SVN Exception: " + exc.Message + " - " + exc.File);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是引发了一个SvnException:

  • SvnException.Message:锁定工作副本'C:\ temp\CheckoutDir'
  • SvnException.File:..\..\..\subversion\libsvn_wc\lock.c"

我的代码中没有运行其他svnclient实例,我也尝试过调用

svn.cleanup()
Run Code Online (Sandbox Code Playgroud)

就在Add之前,但无济于事.

由于文档相当模糊;),我想知道这里是否有人知道答案.

提前致谢!

一月

Mat*_*s F 5

使用我的工具http://svncompletesync.codeplex.com/或将其作为样本.它完全符合您的需求.