Sign in Join
Wiki copytemporary

Creating A Patch/ja: what changed

Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
1-FPC や Lazarus を改良したコードを提出する場合は、開発者がマージしやすいようにパッチで提出するようにしてください。
1+**日本語版メニュー**
2+---
3+[[Main Page/ja|メインページ]] \- [[Lazarus Documentation/ja|Lazarus Documentation日本語版]] \- [[Japanese Localization Notes|翻訳ノート]] \- [[Bug Tracking/ja|日本語障害情報]]
4+
5+FPC や Lazarus を改良したコードを提出する場合は、開発者がマージしやすいようにパッチで提出するようにしてください。
26
3-例外事項:
7+例外事項:
48
5-1. 翻訳用の .po ファイルはパッチではなくファイルをそのまま提出してください
6-2. 新規に作られたファイルは、ファイルをそのまま提出して、設置場所を明記してください
9+ 1. 翻訳用の .po ファイルはパッチではなくファイルをそのまま提出してください
10+ 2. 新規に作られたファイルは、ファイルをそのまま提出して、設置場所を明記してください
711
812## 必要なもの
913
10-Lazarus の main/開発版。SVN か Git いずれかを使って入手できます。
14+Lazarus の main/開発版。SVN か Git いずれかを使って入手できます。
1115
12-- Git:https://gitlab.com/freepascal.org/lazarus/lazarus。
13-- SVN:
16+ * Git:<https://gitlab.com/freepascal.org/lazarus/lazarus。>
17+ * SVN:
1418
15-```text
16- svn checkout --depth files https://github.com/fpc/Lazarus/branches all
17- cd all
18- svn update --set-depth infinity main
1919```
20+svn checkout --depth files <https://github.com/fpc/Lazarus/branches> all
21+ cd all
22+ svn update --set-depth infinity main
23+```
2024
2125## プラットフォームで異なるところ
2226
23-コマンドプロンプトを開いてリポジトリのあるディレクトリに移動 (cd) する部分が若干異なります。詳しくは以下に示します。
27+コマンドプロンプトを開いてリポジトリのあるディレクトリに移動 (cd) する部分が若干異なります。詳しくは以下に示します。
2428
2529### Windows
2630
27-チェックアウトした Lazarus が C:\lazarus にある場合:
28-
29-1. コマンドプロンプトを開きます(例:「ファイル名を指定して実行」で **cmd.exe** と入力)
31+チェックアウトした Lazarus が C:\lazarus にある場合:
3032
31-2. ```dos
32- c:
33- ```
33+ 1. コマンドプロンプトを開きます(例:「ファイル名を指定して実行」で **cmd.exe** と入力)
34+ 2.
35+```
36+c:
37+```
3438
35-3. ```dos
36- cd \lazarus
37- ```
39+ 3.
40+```
41+cd \lazarus
42+```
3843
39-> **Note:** [TortoiseSVN](http://tortoisesvn.tigris.org/) をお使いでしたら、Windows エクスプローラ上の Lazarus をチェックアウトしたフォルダを選択し、右クリックから TortoiseSVN → パッチを作成 からでも行えます。
44+![Light bulb](https://upload.wikimedia.org/wikipedia/commons/d/d8/Nuvola_apps_ktip.png) **Note:** [TortoiseSVN](<http://tortoisesvn.tigris.org/>) をお使いでしたら、Windows エクスプローラ上の Lazarus をチェックアウトしたフォルダを選択し、右クリックから TortoiseSVN → パッチを作成 からでも行えます。
4045
41-問題がある場合は、[[TortoiseSvn|TortoiseSvn#Troubleshooting]] もご覧になってください。
46+問題がある場合は、[[TortoiseSvn|TortoiseSvn#Troubleshooting]] もご覧になってください。
4247
4348### Unix 系
4449
45-チェックアウトした Lazarus が ~/lazarus にある場合:
46-
47-1. 端末を開きます
50+チェックアウトした Lazarus が ~/lazarus にある場合:
4851
49-2. ``` bash
50- cd ~/lazarus
51- ```
52+ 1. 端末を開きます
53+ 2.
54+```
55+cd ~/lazarus
56+```
5257
5358## SVN を使ってパッチを作成する
54-
55-``` bash
59+```
5660svn diff > mypatch.diff
5761```
5862
59-こうして作られたパッチには、SVN リポジトリのすべての変更が含まれます。
60-
61-個別にパッチを作りたい場合は、関係のないものが含まれないように以下のように行います。
63+こうして作られたパッチには、SVN リポジトリのすべての変更が含まれます。
6264
63-``` bash
65+個別にパッチを作りたい場合は、関係のないものが含まれないように以下のように行います。
66+```
6467svn diff ide/main.pp ideintf/objectinspector.pp > mypatch.diff
6568```
6669
6770## Git を使ってパッチを作成する
6871
69-開発はローカルブランチで行います。開発しているブランチ内で動作が確認できたら、以下のコマンドでローカルコミットのパッチをすべて作成します。
70-
71-``` bash
72+開発はローカルブランチで行います。開発しているブランチ内で動作が確認できたら、以下のコマンドでローカルコミットのパッチをすべて作成します。
73+```
7274git format-patch master
7375```
7476
75-"0001-CommitMsg.patch"、"0002-CommitMsg.patch" といった名前のファイルの組が作られます。
76-
77-1 つのパッチにすべての変更をまとめたいのであれば、"git rebase -i ..." を使ってコミットをまとめるか、以下のコマンドを使います。
77+"0001-CommitMsg.patch"、"0002-CommitMsg.patch" といった名前のファイルの組が作られます。
7878
79-``` bash
79+1 つのパッチにすべての変更をまとめたいのであれば、"git rebase -i ..." を使ってコミットをまとめるか、以下のコマンドを使います。
80+```
8081git format-patch master --stdout > mypatch.patch
8182```
8283
8384## パッチの提出
8485
85-パッチを提出する前に、それで問題ないか入念な確認をお願いいたします。
86+パッチを提出する前に、それで問題ないか入念な確認をお願いいたします。
8687
87-[bug tracker](http://bugs.freepascal.org) を通してパッチを提出するのがお勧めの方法です。詳しくは、[[How do I create a bug report/ja|不具合報告のやり方をご]]覧になってください。bug tracker に報告されている課題を修正するパッチであればその課題項目へ、そうでない場合は bug tracker 上に新しく課題項目を作成しそこへパッチを提出します。課題項目に対してアップロードできたら提出完了です。
88+[bug tracker](<http://bugs.freepascal.org>) を通してパッチを提出するのがお勧めの方法です。詳しくは、[[How do I create a bug report/ja|不具合報告のやり方]]をご覧になってください。bug tracker に報告されている課題を修正するパッチであればその課題項目へ、そうでない場合は bug tracker 上に新しく課題項目を作成しそこへパッチを提出します。課題項目に対してアップロードできたら提出完了です。
8889
8990## フォークされている Git リポジトリの直接使用
9091
91-Lazarus の開発においても Git を使って配布するというやり方もありでしょう。最近では JuhaManninen 氏と Alexander Klenin ("Ask") 氏が Git リポジトリへのコードの受け入れを進んで行っています。
92+Lazarus の開発においても Git を使って配布するというやり方もありでしょう。最近では JuhaManninen 氏と Alexander Klenin ("Ask") 氏が Git リポジトリへのコードの受け入れを進んで行っています。
9293
93-実際、彼らのリポジトリは GitHub 内において Lazarus のミラーからフォークされています。当然ながら受け入れられたコードは、独立したブランチ内の存在であり、"upstream" ブランチより rebase された状態にあります。これらのコードはまだテストされてはおらず、誰かによってこれらのリポジトリをフォークされたりそこからコードを作成されたりすると、やるべきテストなどがどっと増やされてしまうかもしれません。
94+実際、彼らのリポジトリは GitHub 内において Lazarus のミラーからフォークされています。当然ながら受け入れられたコードは、独立したブランチ内の存在であり、"upstream" ブランチより rebase された状態にあります。これらのコードはまだテストされてはおらず、誰かによってこれらのリポジトリをフォークされたりそこからコードを作成されたりすると、やるべきテストなどがどっと増やされてしまうかもしれません。
9495
95-このような限られた場というのは、Git を使って専門の開発をする人達のためのものでしょう。そこでのコードを多くの人に利用してもらいたいのであれば、Git を使って適宜パッチを作り、bug tracker へ提出するべきでしょう。
96+このような限られた場というのは、Git を使って専門の開発をする人達のためのものでしょう。そこでのコードを多くの人に利用してもらいたいのであれば、Git を使って適宜パッチを作り、bug tracker へ提出するべきでしょう。
9697
9798## パッチの適用
9899
99-ここでは、他のだれかが作ったパッチをお使いになられているローカルリポジトリに適用する方法について説明します。以下のように --dry-run スイッチを使うことでパッチの影響テストが行えます。
100-
101-``` bash
100+ここでは、他のだれかが作ったパッチをお使いになられているローカルリポジトリに適用する方法について説明します。以下のように --dry-run スイッチを使うことでパッチの影響テストが行えます。
101+```
102102patch --dry-run < somepatch.diff
103103```
104104
105-このパッチテストの出力結果は実際に行われるパッチと同じものですが、ソースファイルを変更することはありません。かなり厳格なテストなので、お使いになられている環境のソースファイルが思いがけず乱されるということはまずないでしょう。
105+このパッチテストの出力結果は実際に行われるパッチと同じものですが、ソースファイルを変更することはありません。かなり厳格なテストなので、お使いになられている環境のソースファイルが思いがけず乱されるということはまずないでしょう。
106106
107107### "svn diff" で作られたパッチ
108108
109-テストで問題なかったら、以下のコマンドを使ってパッチを適用します。
110-
111-``` bash
109+テストで問題なかったら、以下のコマンドを使ってパッチを適用します。
110+```
112111patch < somepatch.diff
113112```
114113
115-これでうまくいかないのは、お使いになられている環境がパッチが作られた環境と異なっているからです。その場合は、以下のようにしてパス情報をすべて引き出すように指定してください。
116-
117-``` bash
114+これでうまくいかないのは、お使いになられている環境がパッチが作られた環境と異なっているからです。その場合は、以下のようにしてパス情報をすべて引き出すように指定してください。
115+```
118116patch -p0 < somepatch.diff
119117```
120118
121-Windows 用の GUI バージョン管理ツールでもこれらのパッチは適用できます。
119+Windows 用の GUI バージョン管理ツールでもこれらのパッチは適用できます。
122120
123121### "git format-patch" で作られたパッチ
124122
125123#### Git
126124
127-Git にパッチを適用するには以下のようにします。
128-
129-``` bash
125+Git にパッチを適用するには以下のようにします。
126+```
130127git apply 0001-gitpatch.patch
131128```
132129
133130#### patch コマンド
134131
135-patch コマンドは -p1 スイッチで git 書式にも対応しています。Linux 版の patch v.2.6.1 で動作確認しました。古いバージョンはおそらく対応していないでしょう。
136-
137-``` bash
132+patch コマンドは -p1 スイッチで git 書式にも対応しています。Linux 版の patch v.2.6.1 で動作確認しました。古いバージョンはおそらく対応していないでしょう。
133+```
138134patch -p1 < 0001-gitpatch.patch
139135```
140136
141-patch コマンドは Windows でも利用できます。また、GUI ツールにも同じ機能があります。
137+patch コマンドは Windows でも利用できます。また、GUI ツールにも同じ機能があります。
142138
143139#### TortoiseMerge
144140
145-TortoiseMerge は Git 書式のパッチも問題なく使用できます。Tortoise SVN をインストールすると TortoiseMerge もインストールされますが、エクスプローラの右クリックメニューには表示されません。スタートメニューから起動してください。(訳注:ずばりの名称は右クリックメニューには出ませんが、パッチを適用 とかで開かれるものが TortoiseMerge です。)
141+TortoiseMerge は Git 書式のパッチも問題なく使用できます。Tortoise SVN をインストールすると TortoiseMerge もインストールされますが、エクスプローラの右クリックメニューには表示されません。スタートメニューから起動してください。(訳注:ずばりの名称は右クリックメニューには出ませんが、パッチを適用 とかで開かれるものが TortoiseMerge です。)
146142
147-ToDo:Git 書式のパッチをサポートする GUI ツールが他にもあるようでしたらここに追加してください
143+ToDo:Git 書式のパッチをサポートする GUI ツールが他にもあるようでしたらここに追加してください
148144
149145### トラブルシューティング
150146
151-パッチを適用する段階になって Unix/Linux の改行コード (LF) と Windows の改行コード (CR+LF) が異なってうまくいかないことがあります。Windows 環境では patch.exe の改行コード処理がいい加減なので、パッチ適用前にファイルを変換する必要があるでしょう。
152-
153-Windows 版の FPC/Lazarus に付属している patch.exe はかなり使いづらいです。Git に付属している patch.exe の方がいいでしょう。
147+パッチを適用する段階になって Unix/Linux の改行コード (LF) と Windows の改行コード (CR+LF) が異なってうまくいかないことがあります。Windows 環境では patch.exe の改行コード処理がいい加減なので、パッチ適用前にファイルを変換する必要があるでしょう。
154148
155-```dos
149+Windows 版の FPC/Lazarus に付属している patch.exe はかなり使いづらいです。Git に付属している patch.exe の方がいいでしょう。
150+```
156151"C:\Program Files (x86)\Git\bin\patch.exe" -p0 < mypatch.diff
157152```
158153
159-SVN 1.7 以降でしたら SVN の patch コマンドも利用できます。
154+SVN 1.7 以降でしたら SVN の patch コマンドも利用できます。
160155
161156## 関連項目
162157
163-- [[How do I create a bug report/ja|不具合報告のやり方]] - 不具合報告の一般的な情報
164-- [[Tips on writing bug reports|不具合報告を書く上でのヒント]] - 不具合を報告するさいのトラブルやそうならないための対策
165-- [[Database bug reporting|データベース関連の不具合報告]] - データベース関連の不具合報告用の簡単なプログラムと関連する情報
158+ * [[How do I create a bug report/ja|不具合報告のやり方]] \- 不具合報告の一般的な情報
159+ * [[Tips on writing bug reports|不具合報告を書く上でのヒント]] \- 不具合を報告するさいのトラブルやそうならないための対策
160+ * [[Database bug reporting|データベース関連の不具合報告]] \- データベース関連の不具合報告用の簡単なプログラムと関連する情報
166161
167162---
168-*From the Free Pascal wiki, page "Creating A Patch/ja", as it stood on 2022-01-13 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
169-Category: Debugging/ja
170-Category: FPC/ja
171-Category: Lazarus/ja
163+*From the Free Pascal wiki, page "Creating A Patch/ja", as the Internet Archive kept it on 2024-12-06, last changed on 2022-01-14. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history