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」カテゴリの記事
- 「クラウド・カンファレンス in 静岡」覚え書き(2011.09.25)
- 「そのツイート、誰に見られても平気ですか?」(2011.06.23)
- ハッシュタグを自動追加する twicli プラグインを作った(2010.10.22)
- 静岡ガンダムをライブ配信してみた(2010.10.11)
- Gist のソースを表示する twicli プラグイン(2010.10.07)
「プログラミング」カテゴリの記事
- DAD(2018.12.16)
- EditorConfig Vim Plugin を日本語環境の Windows で(2016.12.07)
- NetBeans を Mac の Java 6 で使う(2013.08.22)
- Bitbucket と GitHub のユーザー名を変更しました(2013.02.15)
- Mercurial で Office (2007) Open XML や OpenDocument を管理する(2011.11.21)
この記事へのコメントは終了しました。
« 今度は Hg-Git から Git-Hub に push | トップページ | Hg-Git は rebase 出来ない (twicli rebase の続き) »
コメント