電八開発倶楽部 ― Subversion ― submit patch


subversionによるパッチの投稿方法

概要

パッチ投稿手順例

以下、パッチ投稿手順とコマンドラインクライアントでの操作例を示します。

  1. パッチ投稿のベースとなるリビジョンをリポジトリからcheckoutします。例えば以下の様な場所からです。ソースの系統的に適切な場所を作業ベースとして下さい。
    • 通常は公式ビルドの最新 (current)…/trunk/
    • 最新には当てられない内容で有れば、必要なリリース済みの公式ビルド(stableもしくは過去のβ版)…/tag/ 内のどれか
    • 公式ビルドに統合されていない特定のパッチの改良か、それに依存している…/patches/PATCHNUMBER
    例:V32.1.6のcurrentソースをden8workへチェックアウト
    >svn checkout svn://svn.denshin8.jp/den8dev/V32.1.6/trunk ./den8work
    (IDとパスワードはMLに配信されるメールを参照して下さい。)
  2. チェックアウトした作業コピーに投稿するパッチを当て(マージ)します。
  3. den8dev MLにパッチの内容を報告して下さい。そのメールの記事番号がパッチ番号です。
    メールの内容はこちらを参照して下さい。
    • 作業コピー上で
      >svn status
    • とすると変更・追加ファイルの一覧が出ます。
    • これからコミットするリポジトリのパス
      (メール投稿時点ではパッチ番号は未確定なので単に # とでもしておいて下さい。)
    • その他備考
  4. 作業コピーの内容で、パッチ番号のタグを /patches 上に作成します。
    • subversionのタグはフォルダのコピーですのでcopyコマンドを使用します。コピー元に作業コピーを指定すれば一回の操作で完了します。
    • 例: ML記事番号が [den8dev:08086]のとき 、den8work フォルダ上で
      >svn copy . svn://svn.denshin8.jp/den8dev/V32.1.6/patches/08086 -F logmsg.txt
      とすれば /patches/08086 が作成され、コミットされます。作業ベースは勝手に/patches/08086に変わったりはしません。
      ※logmsg.txtはコミットログです。パッチの内容説明を書いておいて下さい。

    • 一部のGUIクライアントでもタグ・ブランチ作成機能でコピー作成元を作業コピーに指定可能です(図はTortoiseSVNの例)。 そのような機能がない場合は、普通にブランチを作って(copyして)、switchして、コミットして下さい。
      TortoiseSVN
  5. 作成したタグの内容を確認して下さい。
    • 作業コピーをswitchしてstatusを取るか、別にチェックアウトして比較します。
      例:作業コピーのベースを /patches/08086 に切り替える。
      >svn switch svn://svn.denshin8.jp/den8dev/V32.1.6/patches/08086
      これで、den8work/patches/08086 が作業ベースになります。statusをとれば /patches/08086 からの作業コピーの状態が出ます。
    • パッチに対する些末な修正が必要でコミットすることが出来ます。例えばコメントのパッチ番号を直すなど。
      例:作業ベースを /patches/08086 switch しておきます(前出)。コミットは次の様にします。
      >svn commit -F logmsg.txt

備考