システム名『Umix』の由来と、ディレクトリ丸ごとコピーから600コミットのGit履歴を救い出した執念の話
「pri-dan-system」から「Umix」へ。改良版としてディレクトリごとコピーされたコードベースから、初期の泥臭く積み上げたコミットをすべて救い出すためにGitの歴史を繋ぎ合わせた開発者の奮闘記。
プリダンの心臓部である自作プリントシール機システムは、**『Umix(ウミックス)』**という名前で呼ばれています。
「おしゃれな名前ですね! なにか特別なテクノロジーの略称ですか?」と聞かれることがありますが、違います。 この名前には、プロジェクトの分裂と、そこからGitコミット履歴を執念でサルベージした生々しい開発の歴史が刻まれています。
始まりは「pri-dan-system」だった
プロジェクトの最初期、メイン開発者である私がゼロからガシガシとコードを書いていた頃のリポジトリ名は、非常に素朴な pri-dan-system でした。
- 画面遷移がバグって無限ループするコミット
- カメラが認識しなくてUSBを引っこ抜いた痕跡のコミット
- 深夜3時に「動いた!!!」とだけ書かれた謎のコミット
お世辞にも綺麗とは言えないけれど、自分が汗水流して試行錯誤して「積み上げたコミット」たちも含めて、かけがえのない開発記録でした。
事件:ディレクトリ丸ごとコピーと「Umix」の誕生
ある日、開発を手伝ってくれていたメンバーの一人が、システムの改良版を作ってくれました。 しかしその手法が、Gitのブランチを切るのではなく……
「pri-dan-system のフォルダを丸ごとデスクトップにコピーして別リポジトリを作成」
というワイルドすぎる手法だったのです。 そして、その改良版を作ってくれたメンバーの名前をもじって、システムは**『Umix』**と名付けられました。
改良版のコードは確かに洗練されていて素晴らしかった。 でも、Gitの履歴は真っ新な「First commit」から始まっており、私が積み上げた過去の泥臭いコミット履歴がすべて消滅していたのです。
メイン開発者の執念:「絶対にコミット履歴を繋ぎ合わせる」
普通なら「まあ、新しくなったしいいか」と諦めるところかもしれません。 しかし、Gitを愛するエンジニアとして、私の中に眠るオタクの魂が叫びました。
「絶対に嫌だ! 私の苦悩が詰まった初期コミットたちを無かったことにされてたまるか!!」
そこから、私の「Git履歴救出作戦」が始まりました。
- 新しい
umixリポジトリに、旧pri-dan-systemのリモートを登録する。 - コピーによって分岐した基点となるコミットを探し出す。
git replaceやgit rebase --onto、時にはコミットハッシュを手作業で辿りながら、2つの断絶されたGitツリーを強引に一本の歴史へと縫合(マージ)する。
コンフリクトを1つずつ手作業で解消し、ついに履歴の統合に成功した瞬間、ターミナル上に現れた美しいコミットログを見て思わずガッツポーズが出ました。
そして現在:累計600コミットを超える歴史へ
過去のすべての苦難のコミットが救われた結果、現在の umix リポジトリは累計600コミットを突破しました。
- 私が深夜に詰まりながら書いた初期のプロトタイプ
- 仲間が改良してくれたコード
- そして現在進行形で進化し続ける最新機能
すべてがひとつのGitツリーとして脈々と息づいています。
システム名『Umix』を見るたびに、私は「名前をつけてくれた仲間への感謝」と「過去のコミットを執念で救い出した夜の熱気」を思い出します。 ソフトウェアの本当の価値は、完成したコードだけでなく、そこに辿り着くまでの歴史(Gitログ)の中にあるのかもしれません!