ログ日記

作業ログと日記とメモ

GitHub Pull Request ではなく git request-pull

Linus

Git comes with a nice pull-request generation module, but github
instead decided to replace it with their own totally inferior version.

https://github.com/torvalds/linux/pull/17#issuecomment-5654674

Gitにはniceな pull-requestモジュールがあるのにGitHubは劣化版に置き換えた、と言っていて

I believe he's referring to git-request-pull.

https://github.com/torvalds/linux/pull/17#issuecomment-5660608

それは git request-pull のことらしい。
というのを読んだので、使い方のメモ。

git request-pull [-p] <start> <url> [<end>]

このコマンドでリクエストを生成する。例えば

% git request-pull origin/master https://github.com/nishimura/ghcjs-form-sample1 use-template-haskell
The following changes since commit 555c1c69f771b519e4c22a534f8d6b3837497361:

  Merge branch 'monad-trans' (2019-06-18 21:19:37 +0900)

are available in the git repository at:

  https://github.com/nishimura/ghcjs-form-sample1 use-template-haskell

for you to fetch changes up to 64b5751f8bb115e354054572b78488d4c2a81980:

  add code generator by template haskell (2019-06-21 20:17:40 +0900)

----------------------------------------------------------------
Satoshi Nishimura (1):
      add code generator by template haskell

 app/AppMain.hs   |  8 ++++----
 app/Generate1.hs | 45 +++++++++++++++++++++++++++++++++++++++++++++
 app/Generate2.hs | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/Helper.hs    | 46 ++++++++++++++++------------------------------
 package.yaml     |  1 +
 5 files changed, 125 insertions(+), 34 deletions(-)
 create mode 100644 app/Generate1.hs
 create mode 100644 app/Generate2.hs

こんな感じに、git log --stat のようなログが生成される。
ここにアップしたから受け取ってというメッセージになっている。


これを見てpullする人は、何か適当にブランチを切って書いてあるメッセージの通りにpullすれば良い。

git checkout -b work/merge1 555c1c69f771b519e4c22a534f8d6b3837497361

git pull https://github.com/nishimura/ghcjs-form-sample1 use-template-haskell

これで問題なければdevelopやmaster等にマージする。



分散バージョン管理っぽい。


Linusが時々タグ云々と言っているのは、git tagではなくて
とあるエンジニアの備忘log: git の Acked-by と Reviewed-by
ここの reviewed-by とかのこと?

CodeReview - SambaWiki
この辺りも詳しい。
Signed-off-by は git commit --signoff があるけど Reviewed-by などは手動だって。

自動化は
Elasticity: Adding Reviewed-by and Acked-by Tags with Git
こんな感じ。


これって一連のコミット(3コミットとか)をレビューしてマージする場合はrebaseとかでコメントを全部書き換えることになるのか。
この方針だとGPGのsignとかコミットに付けてもマージ時に全部消えるってことか。