subversionによるパッチの投稿方法
概要
- パッチ投稿はパッチ用のタグフォルダ
/patches/へのタグを作成することで行います。パッチの内容はパッチを当てたリビジョンとタグの差分となります。 - パッチは内容毎に別けて一件ずつコミットして下さい。依存関係にない複数の内容はなるべく一つのパッチ内に入れないようにして下さい。
- パッチはタグなので、開発倶楽部で公開した後のパッチの修正はコメントやコミット上のミスの修正程度に限って下さい。パッチの意味的な改良は別パッチをコミットして下さい。
パッチ投稿手順例
以下、パッチ投稿手順とコマンドラインクライアントでの操作例を示します。
- パッチ投稿のベースとなるリビジョンをリポジトリから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に配信されるメールを参照して下さい。) - 通常は公式ビルドの最新 (current)…
- チェックアウトした作業コピーに投稿するパッチを当てます。
- 新規に追加するファイルがある場合は add を忘れないようにしましょう。
例:newfile.cppを追加する場合
>svn add newfile.cpp - 作業中.svnフォルダを変更しないように気をつけましょう。
- ファイル全体をコピーするときは、パッチ以外の差分があるかも知れませんので注意してください。
- den8dev MLにパッチの内容を報告して下さい。そのメールの記事番号がパッチ番号です。
メールの内容はこちらを参照して下さい。- 作業コピー上で
>svn status
とすると変更・追加ファイルの一覧が出ます。
- これからコミットするリポジトリのパス
(メール投稿時点ではパッチ番号は未確定なので単に # とでもしておいて下さい。) - その他備考
- 作業コピー上で
- 作業コピーの内容で、パッチ番号のタグを
/patches上に作成します。- subversionのタグはフォルダのコピーですのでcopyコマンドを使用します。コピー元に作業コピーを指定すれば一回の操作で完了します。
- 一部のGUIクライアントでもタグ・ブランチ作成機能でコピー作成元を作業コピーに指定可能です(図はTortoiseSVNの例)。
そのような機能がない場合は、普通にブランチを作って(copyして)、switchして、コミットして下さい。

例: 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はコミットログです。パッチの内容説明を書いておいて下さい。
- 作成したタグの内容を確認して下さい。
- 作業コピーを
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
- 作業コピーを
電八公式ページに戻る