1

SharpSVNを使用してマージを実行しようとしています。少し調べてみると、SharpSVNがMergDiff関数をサポートしていることがわかりましたが、以下のコードを試してみると、必要なリビジョンがすべて指定されていないというエラーメッセージが表示されます。

ありがとう

try
{
    SvnCheckOutArgs argsSVNCheckout = new SvnCheckOutArgs();
    SvnUpdateResult result;
    SvnTarget _rootSVNTarget = null;   // = new SvnTarget();
    string serverUrl = "http://svn.snaffpaw.com:8080/CPM Creator/";


    // The Subversion target to run log against
    SvnTarget target = null;

    // Attempt to create an SvnTarget by parsing the targetPath
    if (string.IsNullOrEmpty(targetPath) ||
        !SvnTarget.TryParse(targetPath, out target))

    if (string.IsNullOrEmpty(serverUrl) || (!SvnTarget.TryParse(serverUrl,out _rootSVNTarget))) 


    //SvnStatusArgs argSVN = new SvnStatusArgs();
    //argSVN.RetrieveRemoteStatus = true;

    //Collection<SvnStatusEventArgs> infos;
    //bool isChecked = client.GetStatus(targetPath, argSVN, out infos);

    // Attempt to create an SvnTarget by parsing the targetPath
    if (string.IsNullOrEmpty(targetPath) ||
        !SvnTarget.TryParse(targetPath, out target))


        if (string.IsNullOrEmpty(serverUrl) || !SvnTarget.TryParse(serverUrl, out _rootSVNTarget))



    client.Authentication.DefaultCredentials = new NetworkCredential("guest", "guestpwd");



    client.DiffMerge(targetPath, _rootSVNTarget, target); //<<<-- errors here
}
// ...
4

1 に答える 1

1

SharpSvn ユーザー リストに記載されているように、次の例では不足しているリビジョンが解決されます。

using (SvnClient client = new SvnClient())
{
 client.DiffMerge(
     "CHANGES",  // Target to merge to
     new SvnUriTarget(new Uri("http://svn.collab.net/repos/svn/tags/1.5.0/CHANGES")), SvnRevision.Head),
     new SvnUriTarget(new Uri("http://svn.collab.net/repos/svn/tags/1.5.5/CHANGES"), SvnRevision.Head));
 }

エラーは、渡された Uris がデフォルトで HEAD リビジョンにならず、明示的にヘッド リビジョンを使用しなければならなかったことです。

これは、 http://sharpsvn.net/daily/で入手できる現在のデイリー ビルドで修正されています。

于 2008-12-31T12:10:52.723 に答える