Add file using SharpSVN

jan picture jan · Jun 8, 2009 · Viewed 7.1k times · Source

I would like to add all unversioned files under a directory to SVN using SharpSVN.

I tried regular svn commands on the command line first:

C:\temp\CheckoutDir> svn status -v

I see all subdirs, all the files that are already checked in, a few new files labeled "?", nothing with the "L" lock indication

C:\temp\CheckoutDir> svn add . --force

This results in all new files in the subdirs ,that are already under version control themselves, to be added.

I'd like to do the same using SharpSVN. I copy a few extra files into the same directory and run this code:

...
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);
    }
}

But an SvnException is raised:

  • SvnException.Message: Working copy 'C:\temp\CheckoutDir' locked
  • SvnException.File: ..\..\..\subversion\libsvn_wc\lock.c"

No other svnclient instance is running in my code, I also tried calling

svn.cleanup()

right before the Add, but to no avail.

Since the documentation is rather vague ;), I was wondering if anyone here knew the answer.

Thanks in advance!

Jan

Answer

Mathias F picture Mathias F · Jun 8, 2010

Use this my tool http://svncompletesync.codeplex.com/ or take it as a sample. It does exactly what you need.