我想使用 SharpSVN 将目录下的所有未版本控制的文件添加到 SVN。
我首先在命令行上尝试了常规的 svn 命令:
C:\temp\CheckoutDir> svn status -v
我看到所有子目录,所有已签入的文件,一些标有“?”的新文件,没有“L”锁定指示
C:\temp\CheckoutDir> svn add . --force
这会导致添加子目录中的所有新文件,这些文件本身已经在版本控制之下。
我想使用 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);
}
}
但是引发了 SvnException:
- SvnException.Message:工作副本 'C:\temp\CheckoutDir' 已锁定
- SvnException.File: ..\..\..\subversion\libsvn_wc\lock.c"
我的代码中没有运行其他 svnclient 实例,我也尝试调用
svn.cleanup()
就在添加之前,但无济于事。
由于文档相当模糊;),我想知道这里是否有人知道答案。
提前致谢!
简