From a0c543f987a55d9cb7a776fdd6a650d8f7ee81cf Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 10 Feb 2017 14:28:55 +0900 Subject: [PATCH 1/3] fix to use git instead of hg --- docs/how_to_write_patches.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/how_to_write_patches.md b/docs/how_to_write_patches.md index 004962ba..2f93a191 100644 --- a/docs/how_to_write_patches.md +++ b/docs/how_to_write_patches.md @@ -5,13 +5,13 @@ title: パッチの書き方 パッチを書いたことがない、または他の人のパッチを試したことがない皆さんにとって、パッチというのは敷居の高いことかもしれません。 しかし、一度Vimにパッチを書いてみたり、他人のパッチを試してみると、パッチを扱うことが空気のように思えてくるはずです。 -Vimはバージョン管理ツールとしてMercurialを採用しているおかげで、簡単にパッチを作成し管理することができます。 +Vimはバージョン管理ツールとして Git を採用しているおかげで、簡単にパッチを作成し管理することができます。 ここではパッチの作成方法について学びましょう。 最近、www.vim.org のページに[Vim development](http://www.vim.org/develop.php)という記事ができました。 こちらは英語ですが、手順がよくまとまっているため、英語を苦にしない人はこちらを参照するとよいでしょう。 -まず前提条件として、あなたのPCではコンパイル環境が整備されており、[Mercurial](http://mercurial.selenic.com/)が使える状態になっているとします。 +まず前提条件として、あなたのPCではコンパイル環境が整備されており、[Git](https://git-scm.com/)が使える状態になっているとします。 Windowsユーザーであれば[Visual Studioでのコンパイル方法](http://vim-jp.org/docs/build_windows_msvc.html)もしくは[MinGWでのコンパイル方法](http://vim-jp.org/docs/build_windows_mingw.html)も参照して下さい。 最新のソースコードを取得する為に、シェル(Windowsであればコマンドプロンプト)から以下を実行します。 From fc2cbc55cd15b5f7bddde1c4f822574c1cd14453 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Fri, 10 Feb 2017 14:44:37 +0900 Subject: [PATCH 2/3] use Git --- docs/how_to_write_patches.md | 54 ++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/docs/how_to_write_patches.md b/docs/how_to_write_patches.md index 2f93a191..cd319703 100644 --- a/docs/how_to_write_patches.md +++ b/docs/how_to_write_patches.md @@ -16,22 +16,15 @@ Windowsユーザーであれば[Visual Studioでのコンパイル方法](http:/ 最新のソースコードを取得する為に、シェル(Windowsであればコマンドプロンプト)から以下を実行します。 - $ hg clone https://bitbucket.org/vim-mirror/vim + $ git clone https://github.com/vim/vim -今回の手順では [Mercurial Queue](http://mercurial.selenic.com/wiki/JapaneseMqExtension)を利用するので、あらかじめ機能を有効化しておきましょう。 +次に修正内容に対応するブランチを作成します。 - $ cat ~/.hgrc - [extensions] - mq= - -次に修正内容に対応するパッチを作成します。 -今回はパッチ名を`010-fix-quickfix-on-windows.patch`としました。 - - $ hg qnew 010-fix-quickfix-on-windows.patch + $ git checkout -b add-new-func-trim パッチが作成されたらソースファイルを修正します。 - $ vim os_win32.c + $ vim evalfunc.c この際コーディングスタイルは既存のものに合わせるようにしましょう。 [`:help coding-style`](http://vim-jp.org/vimdoc-ja/develop.html#coding-style)にコーディング規約が書かれてあります。 @@ -41,20 +34,33 @@ Windowsユーザーであれば[Visual Studioでのコンパイル方法](http:/ $ patch -p1 < something.patch -ソースファイルを修正したらパッチを更新しましょう。 +ソースファイルを修正したらコミットしましょう。 - $ hg qrefresh + $ git commit -m "added new function trim()" もし、修正中に元のソースコードが変更された場合は、次のコマンドでリポジトリを同期させます。 - $ hg qpop -a; hg pull -u; hg qpush -a + $ git fetch --all + $ git rebase master + +全ての修正が完了したら pull-request を送信しましょう。GitHub 上で vim のリポジトリから Fork ボタンをクリックするか、[hub](https://github.com/github/hub) コマンドをお持ちであれば `hub fork` でも可能です。fork が出来たら自分のリポジトリに対して push します。 + + $ hub fork + $ git push [ユーザID] add-new-func-trim + +あとはブラウザで vim のリポジトリを開くと pull-request ボタンが表示されるので指示に従って pull-request を作成して下さい。その際、海外の方も開発に参加していますので本文は英語で書いて頂く必要があります。 -全ての修正が完了したらパッチファイルを作りましょう。最終的には全修正を一連のパッチファイルとしてメーリングリストに投げます。 +pull-request の冒頭で - $ hg qdiff > fix-quickfix-on-windows.diff +- 発生している現象 +- 再現手順 + +を説明します。また、パッチを作成してメーリングリストに送信する方法もあります。 + + $ git diff master > add-new-func-trim.diff これで作成したパッチの差分ファイルが作成出来るので、メーリングリスト[vim\_dev](https://groups.google.com/forum/#!forum/vim_dev)に添付ファイルを付けるか本文に貼り付けてメールを投げます。(vim\_dev初回投稿時はBram氏の承認が必要なため、すぐには表示されません。) -メールの冒頭で +pull-request と同様にメールの冒頭で - 発生している現象 - 再現手順 @@ -68,21 +74,15 @@ Windowsユーザーであれば[Visual Studioでのコンパイル方法](http:/ Vimでは基本的にバグ修正が優先して取り込まれ、新機能の追加は後回しにされる傾向が強いです。 特に巨大な変更の場合、パッチの取り込みがマイナーリリース時点まで保留されることもあります。 -パッチが取り込まれ、パッチが不要になったら +パッチが取り込まれたらローカルのブランチを削除しても構いません。 - $ hg qdelete + $ git checkout master + $ git branch -D add-new-func-trim -で削除できます。あとは最新版のVimをMercurialで取ってきてコンパイルするだけです。 +で削除できます。あとは最新版のVimを Git で取ってきてコンパイルするだけです。 さぁ君もCONTRIBUTE AUTHORになろう! -※ここで紹介しているMercurial Queueは[quilt](http://savannah.nongnu.org/projects/quilt)と呼ばれるパッチ管理ソフトウェアのコマンド体系をベースにしています。 -Mercurial Queueの使い方を勉強するときには、まずquiltについて学んでおくと理解が早いでしょう。 - 参考資料: -- [Mercurial Queues エクステンション](http://mercurial.selenic.com/wiki/JapaneseMqExtension) -- [Mercurial MQ について](http://d.hatena.ne.jp/dayflower/20090520/1242794877) -- [12 Managing change with Mercurial Queues](http://foozy.bitbucket.org/hgbook-ja/d6ca1334a19d/hgbookch12.html#x105-26500012) -- [13 Advanced uses of Mercurial Queues](http://foozy.bitbucket.org/hgbook-ja/d6ca1334a19d/hgbookch13.html#x108-30000013) - [Vim development](http://www.vim.org/develop.php) From fec9b5084ce86f762f3469058ef39f636a33d4be Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sat, 11 Feb 2017 01:45:11 +0900 Subject: [PATCH 3/3] fix for review --- docs/how_to_write_patches.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/how_to_write_patches.md b/docs/how_to_write_patches.md index cd319703..37da47ba 100644 --- a/docs/how_to_write_patches.md +++ b/docs/how_to_write_patches.md @@ -22,7 +22,7 @@ Windowsユーザーであれば[Visual Studioでのコンパイル方法](http:/ $ git checkout -b add-new-func-trim -パッチが作成されたらソースファイルを修正します。 +ブランチを移動したらソースファイルを修正します。 $ vim evalfunc.c