2016-12-22 13 views
1

SVNを使ってチェックアウトしたコードベースの作業ディレクトリに適用する必要のあるパッチファイルがあります。私はこれを行うためのプログラムを書く必要があります。今はSVNKIT jarを使って(リポジトリからのチェックアウト、コードベースの更新、ローカルな変更の元に戻す)。今、コードベースにパッチを適用する方法を理解できませんでした。方法はありますか? SVNKitとSVNKITのようなライブラリを使って、Javaコードからコードベースにパッチを適用してください。

答えて

1

SVNDiffClientクラスの "doPatch(java.io.Fileの、java.io.Fileの、ブール値、INT)" メソッドを使用:

引数:

  1. ソースパッチをファイル
  2. ターゲットディレクトリ
  3. 「DRYRUN」 - 「真」、パッチ適用プロセスが行われ、完全な通知フィードバックが提供されていますが、作業コピーは
  4. 「STRI変更されていない場合PCOUNTは」 - 至る経路の成分はパッチから得られた経路から除去されるべきである何を指定する(通常は "0")
+0

Iを用い、この: svndiffClient.doPatch(PATCH_FILE、destinationDir、偽、0); 引数: PATCH_FILE - パッチFileObjectに destinationDir - SVNのファイルオブジェクトがコード0 として偽stripCountとして位置 DRYRUNをチェックアウトは、エラーなしで実行されますが、パッチが適用されません。何かを理解できますか? 私はdryRunをtrueとして試してみました。うまくいきません。 –

+0

それは私にはいいようです。パスファイル内のパスが正しいかどうかを再度確認してください(「destinationDir」からの相対パス)。 Windowsを使用している場合:[このバグ](https://issues.tmatesoft.com/issue/SVNKIT-691)に遭遇しました - 私はsvnkit 1.8.12を使用しています – martoe

+0

svnkit- 1.7.14.jar、doPatchメソッドはSVNErrorMessageを返します。void doPatch(File absPatchPath、File localAbsPath、boolean dryRun、int stripCount)SVNException { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.UNSUPPORTED_FEATURE); SVNErrorManager.error(err、SVNLogType.WC); } –

関連する問題