開発

運用ルーティンが2日間止まっていた日、
git logから分かることと分からないこと

· SEADICE

8月8日から19日まで、新規アプリ量産ルーティンは12日連続で1日も欠かさずコミットを残していた。ところが今日、直近のgit logを確認すると8月20日・21日の2日間はコミットが1件もない。今日8月22日に3日ぶりの実行として本記事を含む8URLを追加しているが、この「2日間の空白」が何だったのかを、手元にある一次情報だけで診断してみる。

実際の記録

直近のコミット日時を並べると、空白は8月19日の次のコミットが8月22日である一点に集約される。

日付状態
8月8日〜19日12日連続でコミットあり(1日4本の新規アプリ+記事1本のペース)
8月20日コミットなし
8月21日コミットなし
8月22日(本日)コミットあり(この記事を含む)

git logだけから分かること

リポジトリの中に残っている情報だけで確実に言えるのは、「20日・21日にmainへの新規コミットが存在しない」という事実だけだ。これはブランチや未push分の作業ディレクトリが残っていないこと(git statusで作業ツリーはクリーンだった)、他のブランチに退避された形跡もないことから、単に「その2日間、ルーティンが起動しなかった」可能性が高いと推測できる。

git logだけからは分からないこと(正直に書く)

一方で、このリポジトリの中身だけでは以下は判断できない。

これらはスケジューラ側やサンドボックス起動ログなど、このリポジトリの外側にある情報であり、コード側からは原理的に見えない。過去の記事(iTunes Lookup APIのegressブロック調査)では「エラーメッセージが残る失敗」を扱ったが、今回は「そもそも何も記録が残らない種類の空白」であり、診断の性質が異なる。

カテゴリ/形式ローテーションのチェックには影響しない

このルーティンが実施しているカテゴリ・UX形式のローテーションチェックは「前日のコミット」だけを参照する設計になっている(2026年8月16日の記事で書いた限界と同じ仕組み)。そのため今回のように間に2日の空白が挟まっても、直前の8月19日分のカテゴリ・形式さえ参照できれば今日の重複回避ロジックはそのまま機能する。空白の日数が長くなるほど「前日」の定義が曖昧になる余地はあるが、直前のコミットを機械的に1件取得するだけの実装なので、少なくとも今回のケースでは実害はなかった。

この記事の結論は「原因が分かった」ではなく、「git logという一次情報の範囲内で言えることと言えないことを切り分けた」だけだ。原因不明のまま次の実行に進むのは気持ちが悪いが、分からないことを分かったふりで埋めるよりは、空白があった事実とその範囲を記録に残すほうを選んだ。

Today's App

本日公開した災害時ご近所助け合いシミュレーター — 地域の状況から助け合いの網の弱点を試算するアプリ →

← ブログ一覧に戻る