« 今度は Hg-Git から Git-Hub に push | トップページ | Hg-Git は rebase 出来ない (twicli rebase の続き) »

2010年8月26日 (木)

rebase してもらった twicli の修正のその後に悩む

先日、twicli の search.js プラグインでバグを見つけたので、プログラムを直してみて、作者の @NeoCat さんに GitHub でプルリクエストしてみた。

そしたら @NeoCat さんも別件 (その時発生していた Twitter API の不具合対策 Twitter Status - A known API issue is causing some clients to crash) でほぼ同時にコミットしており、コミットかち合うという事態に。

このままプルされればブランチが出来てしまうはずだけれど、 Twitter / NeoCat: @_wa_ あ、rebaseはこちらでやるので大丈夫ですよ ということで rebase していただいた。

で、本題はここから。

rebase された本家リポジトリ NeoCat/twicli をプルしたところ、自分のリポジトリのログが以下のようになってしまった (Hg-Git で hg pull と hg glog を実行した結果)。

o  チェンジセット:   317:22ffa2526833
|  親:               315:fb686eaff952
|  ユーザ:           NeoCat <**@**>
|  日付:             Wed Aug 25 01:10:29 2010 +0900
|  要約:             Fix search tab problem when searching some marks
|
| @  チェンジセット:   316:63a3bf86b644
|/|  親:               313:f147dfa3cb74
| |  親:               315:fb686eaff952
| |  ユーザ:           NeoCat <**@**>
| |  日付:             Tue Aug 24 23:59:55 2010 +0900
| |  要約:             Merge remote branch 'git-svn'
| |
o |  チェンジセット:   315:fb686eaff952
| |  ユーザ:           Takashi WADA <**@**>
| |  日付:             Tue Aug 24 14:54:01 2010 +0000
| |  要約:             fix "remove tab" when search word contains < or >.
| |
o |  チェンジセット:   314:31309fc15446
|/   ユーザ:           Takashi WADA <**@**>
|    日付:             Tue Aug 24 14:53:56 2010 +0000
|    要約:             fix "remove tab" when search word contains quot or backslash.
|
o  チェンジセット:   313:f147dfa3cb74
|  親:               310:0c6a639d2b9d
|  ユーザ:           NeoCat <**@**>
|  日付:             Tue Aug 24 14:22:34 2010 +0000
|  要約:             Skip null tweets (Twitter API bugs?)
|
| o  チェンジセット:   312:e09e689299f0
| |  タグ:             default/master
| |  タグ:             master
| |  ユーザ:           Takashi WADA <**@**>
| |  日付:             Tue Aug 24 23:43:33 2010 +0900
| |  要約:             fix "remove tab" when search word contains < or >.
| |
| o  チェンジセット:   311:cf357df7b86f
|/   ユーザ:           Takashi WADA <**@**>
|    日付:             Tue Aug 24 23:13:16 2010 +0900
|    要約:             fix "remove tab" when search word contains quot or backslash.
|
o  チェンジセット:   310:0c6a639d2b9d
|  ユーザ:           NeoCat <**@**>
|  日付:             Mon Aug 23 23:06:59 2010 +0000
|  要約:             Add FAQ for Post with shift/ctrl+Enter
|

ここで チェンジセット 311:cf357df7b86f と 312:e09e689299f0 は最初に自分が直してコミットしたときのチェンジセット、314:31309fc15446 と 315:fb686eaff952 が rebase されたチェンジセットである。

つまり、同じ修正内容のチェンジセットが 2つ出来てしまい、元のチェンジセットはブランチになってしまったのである。

さて、この場合、311:cf357df7b86f と 312:e09e689299f0 の扱いはどうしたらいいんだろうか。

  • 311:cf357df7b86f と 312:e09e689299f0 は search.js のバグを修正するという目的を持ったブランチなのだから、その目的を終えてもそのまま放置しておけばよい。
  • 同じ内容のチェンジセットが存在するのは良くないから、 311:cf357df7b86f と 312:e09e689299f0 は消してしまうのがよい。
    • Mercurial だったら MQ の hg strip で消せるし、公開リポジトリの Mercurial hosting — bitbucket.org にもそういう機能があるけれど、Git や GitHub ではどうするんだ?
  • 本家に取り込まれた修正なのだから、それに合わせてなんとか本家にマージすべきである。
    • マージしたって、そのマージ自体がブランチになってしまうから意味がない。

取り敢えずよく分からないから、今はそのまま放置してるけれど、本来はどうすべきなんだろう。

とにかく、rebase ってやつはややこしいなと思った。

もしここを見た方で、「普通はこうするものだよ」とか知ってる人がいたら教えて下さい…

« 今度は Hg-Git から Git-Hub に push | トップページ | Hg-Git は rebase 出来ない (twicli rebase の続き) »

Twitter」カテゴリの記事

プログラミング」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: rebase してもらった twicli の修正のその後に悩む:

« 今度は Hg-Git から Git-Hub に push | トップページ | Hg-Git は rebase 出来ない (twicli rebase の続き) »

Social connection

  • Check

最近のトラックバック

2022年12月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

これも見とるよ

無料ブログはココログ