gitの使い方でそんなこともあるんだと

とあるLinuxカーネルを追ってたら,何故か異なるリビジョン間で
mergeができないという問題にあたった.明らかにできそうなのにもかかわらず.

merge時のコンフリクトしている内容を見ると,カーネルの中身なので当然のように
アセンブラで1行挿入されてたりしていて,そんなもん手作業で直せるか…,と思い,
どうしてこの問題が発生するかいろいろと調べていた.

結局この問題,理解するのに1日半ぐらいかかった.

原因は特定できてしまえば単純で,Linuxの新しいバージョンがリリースされるごとに,
関係するリポジトリをmainlineからすべてマージしなおしていた.
また,その依存関係が壊れた状態で(意図的に)--forceオプションを
付けてpushしていたので,履歴がぶった切られていた.

gitの場合,過去が容易に改ざんできてしまううえに,改ざんしたかどうかすら
わからないので厄介なパターンがあるね.
まぁ,こういう使い方もあるんだな,と思って知っていれば何ともないんだろうな.

Posted at : 2013-09-04 23:38:33 / Category : none

Comments

まだコメントはありません / No comment.

Send comment


Name


Mail-address (empty is OK. If you want to notify update, please fill mail-address.)


Bot check code (241231 と入力してください / Please input 241231.)