Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

「パッチの書き方」ページについて #16

Open
koron opened this issue Sep 24, 2011 · 32 comments
Open

「パッチの書き方」ページについて #16

koron opened this issue Sep 24, 2011 · 32 comments
Assignees
Labels

Comments

@koron
Copy link
Member

koron commented Sep 24, 2011

今のパッチの書き方 はmercurialを使いながらも、git的でよろしくないとの指摘を受けました。気になって聞いたり調べたり実際に使ってみたのですが、確かにmercurialにおいてはMQのほうが便利で、特にVimのパッチ開発方法にはマッチします。

一方、現在gitへのcloneレポジトリの準備中で、vim-jpでレビューする上ではそちらのほうが都合が良かったりもします。というようなことから、最終的には以下の両方を解説するというのも手だろうと考え至りました。

  • mercurial MQでパッチを作る方法
  • gitでパッチを作る方法

ところで、本題とは関係ないですけどgitにもMQ的なのってないんですかね。あれはあれで便利なので気になりました。

@Shougo
Copy link
Member

Shougo commented Sep 24, 2011

これはパッチを送る敷居がかなり下がりますね。

@mattn
Copy link
Member

mattn commented Sep 26, 2011

書いてーーーーー

@ghost ghost assigned koron Sep 26, 2011
@koron
Copy link
Member Author

koron commented Sep 26, 2011

んじゃMQ分は私が書きます。

@k-takata
Copy link
Member

+1

MQについては、hgbookの12, 13章も詳しいです。
12 Managing change with Mercurial Queues
13 Advanced uses of Mercurial Queues

@Shougo
Copy link
Member

Shougo commented Jan 2, 2013

vim-jp/issues#245

src/testdir/ にtest89を新規追加しました。(test89.in test89.ok)
テスト全体の流れを簡単に説明すると...

    test*.ok を test.ok にコピー。(Makefile: 70)
    test*.in の STARTTEST の次の行から ENDTEST の手前の行までを Xdotest というファイルに切り出して実行する。(Makefile: 73 →dotest.in)
    実行中は基本的に自分自身にテスト結果を :$put ~ で追記していって、最後に start:という行以降を test.out に書き出す。(test89.in: 63)
    test.outを1.のtest.okとdiff取って一致していたらtest.okをtest89.okにコピー。(Makefile: 87)
    不一致ならtest.logにtest89 FAILEDと追記して、test.okをtest89.failedにコピー。
    全てのテストが終わったらtest.logの有無を確認して、あれば内容を表示してエラー終了、無ければ ALL DONE を表示して大成功!(Makefile: 46)

せっかくh-eastさんにVimソースコードのテストの書き方を解説してもらったので、「パッチの書き方」ページにも情報を載せたいと考えています。機能追加の場合、Bram氏はテストコードがあるかどうかも重視しているようなので、テストを書くときに戸惑わなくてすみます。

@h-east
Copy link
Member

h-east commented Jan 2, 2013

12/30のBram氏のvim_devの返信

Instead of manual testing, it would be useful to have the tests in
src/testdir. Vim is getting more and more complex, it's good to test
every feature.

を見て私こんなツイートしました。
https://twitter.com/h_east/status/285251852361166848

vimのテスト(src/testdir)はどの番号が何のテストしてるか一覧表作ったほうが良いなぁ。vim-jpで「テストの追加方法」wikiページ作ったらええやん

誰か作ったらええやん!? シマリス好きの人とかw
テストコード(Vim script)はVim本体(C言語)よりたいぶ敷居低いと思うので、分かり易く手順をまとめておけば貢献してくれる人が増える予感...

誰も反応しなかったら私がまったり書きます。

@Shougo
Copy link
Member

Shougo commented Jan 2, 2013

誰か作ったらええやん!? シマリス好きの人とかw
テストコード(Vim script)はVim本体(C言語)よりたいぶ敷居低いと思うので、分かり易く手順をまとめておけば貢献してくれる人が増える予感...
誰も反応しなかったら私がまったり書きます。

シマリス好きの人とは誰ですかね……。
そのTweetは見ていなかったのですが、確かにテストの追加方法 wikiがあると捗りそうです。
私もお手伝いしたいと思います。

@ramu
Copy link

ramu commented Jan 2, 2013

@h-eastさんから呼ばれてきました。

「テストの追加方法」wikiページについては、
既に頭に入ってる@Shougoさんに作成してもらった方が良いかと思います。
私が協力できるとしたら、「どの番号が何のテストしてるか一覧表」でしょうか。

@h-east
Copy link
Member

h-east commented Jan 2, 2013

@ramu 一覧表作って貰えるのですか!欲しいです。
ありがとうございます。
+αで

$ head -1 test*.in

すると綺麗に1行説明が表示されるようにpatchを書くとかもありですね。

@h-east
Copy link
Member

h-east commented Jan 2, 2013

@Shougo シマリス好き(ramu)がやって来ましたよw

私もお手伝いしたいと思います。

ありがとうございます。
まずは私の方で「Vim本体のテストについて」(昨晩書いたやつをもう少し砕いたやつ)を書きます。
それと「Vim本体のテストの追加方法」を書きます。
それとramuさんの一覧表出来てから次の展開考えましょうか。
ちなみに私の分は今日明日明後日とかには出て来ませんので( ゚Д゚)

@Shougo
Copy link
Member

Shougo commented Jan 2, 2013

@Shougo シマリス好き(ramu)がやって来ましたよw

ああ、某ゲームのシマリスのことだったんですね。

まずは私の方で「Vim本体のテストについて」(昨晩書いたやつをもう少し砕いたやつ)を書きます。
それと「Vim本体のテストの追加方法」を書きます。
それとramuさんの一覧表出来てから次の展開考えましょうか。
ちなみに私の分は今日明日明後日とかには出て来ませんので( ゚Д゚)

了解です。さて、私は何をお手伝いしましょうか。
h_eastさんの昨日書いてくれたテストコードの解説、とかでしょうか。
多分、テストの例があるとわかりやすいかと思うので具体的なケースで解説できればなと思っています。

@h-east
Copy link
Member

h-east commented Jan 2, 2013

はい、お願いします。
「Vim本体のテストの追加方法」を手付けてもらっても良いですよ。

@Shougo
Copy link
Member

Shougo commented Jan 2, 2013

「Vim本体のテストの追加方法」を手付けてもらっても良いですよ。

そちらは時間があったらという事で……。

@Shougo
Copy link
Member

Shougo commented Jan 4, 2013

何も進めていないのはまずいと思ったので、「テストの書き方」のページファイルを追加しておきました。

@ramu
Copy link

ramu commented Jan 8, 2013

testdir内のテストを一通り眺めて、一覧作成しました。

・テスト一覧表(編集権限付けてます)
https://docs.google.com/spreadsheet/ccc?key=0AhjXDBX2Xpn0dE5VOUhnc1E5ZXhJOHB3UjUwM0lFTlE

Vim script力無いですが、:helpで調べながらテスト内容を確認、
日本語の簡単な説明 + キーワードを記載してあります。
「赤字で書いてある部分」が理解不能/大変だと思った所なので、
フォローおよび指摘して頂けると助かりますm(_ _)m

勉強になりました!

@koron
Copy link
Member Author

koron commented Jan 8, 2013

@ramu 👍 乙です!

@koron
Copy link
Member Author

koron commented Jan 8, 2013

いくつかコメント付けましたが、今日はもう眠いのでまた明日以降。

@ramu
Copy link

ramu commented Jan 8, 2013

@koron 早速ありがとうございます!
コメントを参考に明日見直ししようと思います

@Shougo
Copy link
Member

Shougo commented Apr 10, 2013

んじゃMQ分は私が書きます。

とだいぶ前にコメントがありましたが、今見てみるとページにMQに関する記述が無いですね。
誰もやらないのなら、勉強がてら私が書いてみようと思いますがどうでしょうか。
あまり知識のないままとりあえず書いてみるので、間違いがあったら突っ込み等よろしくおねがいします。

@Shougo
Copy link
Member

Shougo commented Apr 11, 2013

MQを用いるように手順を修正し、pushしました。
全体的な文章にも手を加えています。

@mattn
Copy link
Member

mattn commented Apr 11, 2013

1行越えてるの無いから「※実際は1行」いらないかな。

@Shougo
Copy link
Member

Shougo commented Apr 11, 2013

修正しました。

@mattn
Copy link
Member

mattn commented Apr 11, 2013

mqの話を書いたなら、ブランチの話はいらない気がする。

@Shougo
Copy link
Member

Shougo commented Apr 11, 2013

確かに。文章がおかしくなっていたので修正しました。

@Shougo
Copy link
Member

Shougo commented Apr 11, 2013

色々文章を追記したり削除したりしたので、もはや別物になってしまった気がする……。
でも、MQは便利だから活用しないともったいないですよね。
後はこれでパッチを書く人が増えればいいなぁ。
少なくとも、私はもっと前からMQの使い方がわかっていればVimへパッチを書く敷居がかなり下がっていました。

@mattn
Copy link
Member

mattn commented Apr 11, 2013

いえ、そもそもブランチを使った修正方法が間違いだったので消して良かったです。

@Shougo
Copy link
Member

Shougo commented Apr 11, 2013

了解です。

@k-takata
Copy link
Member

$ hg pull --mq

$ hg qpop -a     # 一旦パッチを全て適用解除
$ hg pull -u       # 最新のソースを取得、更新
$ hg qpush -a   # パッチを全て適用

かな? --mqはパッチキューをバージョン管理する場合に使うものです。
(後は、上でいくつか出てきている MQ の解説ページへのリンクがあってもよいかも。)

@Shougo
Copy link
Member

Shougo commented Apr 11, 2013

上記の指摘を取り込みました。

@Shougo
Copy link
Member

Shougo commented May 26, 2013

本日、少し記事をアップデートしました。

@k-takata
Copy link
Member

公式記事が出ました。

@Shougo
Copy link
Member

Shougo commented Mar 29, 2014

記事をアップデートしました。連絡ありがとうございます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants