SharpSvnを使用して作業コピーの変更をリポジトリにプログラム的にコミットしようとしています。残念ながら、次のエラーメッセージが表示されます。「コミット中のエラー: 'SomeFile'は追加予定ですが、欠落しています。」 (ここではファイルのパスを削除したことに注意してください)。ファイルが存在し、TortoiseSVNを使用して変更をコミットすると、すべてが正常に動作します。sharpsvn項目の不足でコミットが失敗する
コミットのための私のコード:
// use throw on error, since it provides more information why the operation failed
// might slow down a little bit, because of the exception handling
SvnCommitArgs commitArgs = new SvnCommitArgs() { ThrowOnError = true, Depth = (SharpSvn.SvnDepth)depth, LogMessage = logMessage };
List<Tuple<string, SvnCommitItemChangeType>> committedItems = new List<Tuple<string, SvnCommitItemChangeType>>();
SharpSvn.SvnCommitResult commitResult;
using (var svnClient = new SvnClient())
{
svnClient.Notify += (sender, notifyEventArgs) =>
{
switch (notifyEventArgs.Action)
{
case SvnNotifyAction.CommitReplacedWithCopy:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.ReplacedByCopy));
break;
case SvnNotifyAction.CommitAddCopy:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.CopyAdded));
break;
case SvnNotifyAction.CommitReplaced:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.Replaced));
break;
case SvnNotifyAction.CommitDeleted:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.Deleted));
break;
case SvnNotifyAction.CommitAdded:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.Added));
break;
case SvnNotifyAction.CommitModified:
committedItems.Add(new Tuple<string, SvnCommitItemChangeType>(notifyEventArgs.FullPath, SvnCommitItemChangeType.Modified));
break;
}
};
svnClient.Commit(itemPaths.ToList(), commitArgs, out commitResult);
}
を私が気づいたこと:ディレクトリは大文字にして書かれたが、エラーメッセージは下例を示しています。
編集: エラーメッセージ(ログ): VictorSvnCore.DL.SvnCommitException:コミット中のエラー: 'D:\ TestManagerの\のSysData \システム' が追加に予定されていますが、---> SharpSvn.SvnWorkingCopyPathNotFoundExceptionが欠落しています:コミットが失敗しました(詳細は次を参照してください):---> SharpSvn.SvnWorkingCopyPathNotFoundException: 'D:\ Test \ System'は追加予定ですが、欠落しています ---内部例外スタックトレースの終了--- SharpSvn.SvnClientArgs .HandleResult(SvnClientContextクライアント、SvnExceptionエラー、オブジェクトターゲット) SharpSvn.SvnClientArgs.HandleResult(SvnClientContextクライアント、svn_error_t *エラー、オブジェクトターゲット) SharpSvn.SvnClient.Commit(ICollection 1 paths, SvnCommitArgs args, SvnCommitResult& result) at VictorSvnCore.DL.SvnClientFacade.Commit(IReadOnlyCollection
1 itemPaths、Strin g logMessage、SvnDepth depth)
正確なパスを使用して、これらの問題を解決しました。https://stackoverflow.com/a/326153/3809520 – royalTS