C# 在sharpSVN中提交

C# 在sharpSVN中提交,c#,sharpsvn,C#,Sharpsvn,我在与sharpsvn进行提交时遇到问题。现在,我正在添加我的工作副本的所有文件(如果添加了该文件,则会引发异常),然后提交。它可以工作,但会出现异常。在执行添加()之前,有什么方法可以获取存储库的状态,并且只添加新文件或更改的文件?如果我删除了工作副本上的一个文件或文件夹,如何删除存储库中的这些文件或文件夹? 代码: 加: 承诺: public bool Commit(string path, string message) { using (SvnClient

我在与sharpsvn进行提交时遇到问题。现在,我正在添加我的工作副本的所有文件(如果添加了该文件,则会引发异常),然后提交。它可以工作,但会出现异常。在执行添加()之前,有什么方法可以获取存储库的状态,并且只添加新文件或更改的文件?如果我删除了工作副本上的一个文件或文件夹,如何删除存储库中的这些文件或文件夹? 代码:

加:

承诺:

    public bool Commit(string path, string message)
    {
        using (SvnClient client = new SvnClient())
        {
            SvnCommitArgs args = new SvnCommitArgs();


            args.LogMessage = message;
            args.ThrowOnError = true;
            args.ThrowOnCancel = true;

            try
            {
                return client.Commit(path, args);
            }
            catch (Exception e)
            {
                if (e.InnerException != null)
                {
                    throw new Exception(e.InnerException.Message, e);
                }

                throw e;
            }
        }
    }

你试过类似的东西吗

using(SvnClient client = new SvnClient())
{
   SvnAddArgs aa = new SvnAddArgs();
   aa.Depth = SvnDepth.Infinity;
   aa.Force = true;

   client.Add(rootDir, aa);
}
用于添加文件

这应该不是所有已添加的文件到您的工作副本。(相当于svn添加--force)

如果你能告诉我你遇到了什么样的异常情况,这会有所帮助。Subversion库可以返回数千种不同的错误代码。其中大多数都有有趣的信息文本

SharpSvn将所有特定的Subversion错误嵌套为内部异常。最后的代码删除外部异常,并释放异常其余部分的堆栈跟踪。在外部异常上使用.ToString()可以获得最佳错误文本。(对于与svn.exe类似的错误输出,您需要concat all.Messages)


有关更多建议,请参见。

您是否尝试过类似的方法

using(SvnClient client = new SvnClient())
{
   SvnAddArgs aa = new SvnAddArgs();
   aa.Depth = SvnDepth.Infinity;
   aa.Force = true;

   client.Add(rootDir, aa);
}
用于添加文件

这应该不是所有已添加的文件到您的工作副本。(相当于svn添加--force)

如果你能告诉我你遇到了什么样的异常情况,这会有所帮助。Subversion库可以返回数千种不同的错误代码。其中大多数都有有趣的信息文本

SharpSvn将所有特定的Subversion错误嵌套为内部异常。最后的代码删除外部异常,并释放异常其余部分的堆栈跟踪。在外部异常上使用.ToString()可以获得最佳错误文本。(对于与svn.exe类似的错误输出,您需要concat all.Messages)

有关更多建议,请参见

using(SvnClient client = new SvnClient())
{
   SvnAddArgs aa = new SvnAddArgs();
   aa.Depth = SvnDepth.Infinity;
   aa.Force = true;

   client.Add(rootDir, aa);
}