概要
コミットメッセージが空、または空白のみの git commit -m を禁止し、専用のエラーメッセージで拒否する。
実際の git も空メッセージのコミットは Aborting commit due to empty commit message. で中断される(-m " " のような空白のみも cleanup で空扱いになり中断)ため、拒否することで実 git との整合性が取れる。
背景
当初の設計ではコミットメッセージの中身は自由テキスト(何でもOK)だったが、現在はコミット c592e67 以降、注文のコール文言との完全一致が要求される(#36 の同根問題)。今後メッセージを自由テキストに戻す際、バリデーションがないと空・空白のみのメッセージが通ってしまうため、先に仕様として明確化しておく。
現状の挙動(実ロジックで検証済み)
commit の番で入力した場合:
| 入力 |
現在の挙動 |
git commit -m "台湾ラーメンナルト入りおまち!"(注文どおり) |
✅ 成功 |
git commit -m "" |
正規表現 "(.+)" にマッチせず汎用フォールバックに落ち、「❌ 今は「git commit -m "..."」の番です」という文脈のずれたメッセージになる |
git commit -m " "(半角スペースのみ) |
完全一致チェックで拒否(空白起因であることは伝わらない) |
git commit -m " "(全角スペースのみ) |
同上 |
git commit -m "うまいラーメン"(自由テキスト) |
完全一致チェックで拒否(※自由化するかは別途判断) |
仕様
- メッセージが空(
git commit -m "")の場合、コミットを実行せずエラーメッセージを表示する
- メッセージが空白のみ(半角スペース・全角スペース・タブ等だけで構成される)の場合も同様に拒否する
- メッセージ例:
❌ コミットメッセージが空です(実 git の "Aborting commit due to empty commit message." に相当)
isCommitted は変化させず、ステップも進めない
実装メモ
- 現在の正規表現
/^git commit -m "(.+)"$/i は -m "" にマッチしない(.+ が1文字以上要求)ため、空文字の入力は汎用フォールバックに落ちてしまう。"(.*)" でキャプチャして中身を trim()(全角スペース含む)で判定し、空なら専用エラーを出す形にする
- コミットメッセージを自由テキストに戻す場合(当初設計)は、この空チェックが唯一のバリデーションになる
受け入れ条件
検討事項
関連
概要
コミットメッセージが空、または空白のみの
git commit -mを禁止し、専用のエラーメッセージで拒否する。実際の git も空メッセージのコミットは
Aborting commit due to empty commit message.で中断される(-m " "のような空白のみも cleanup で空扱いになり中断)ため、拒否することで実 git との整合性が取れる。背景
当初の設計ではコミットメッセージの中身は自由テキスト(何でもOK)だったが、現在はコミット
c592e67以降、注文のコール文言との完全一致が要求される(#36 の同根問題)。今後メッセージを自由テキストに戻す際、バリデーションがないと空・空白のみのメッセージが通ってしまうため、先に仕様として明確化しておく。現状の挙動(実ロジックで検証済み)
commit の番で入力した場合:
git commit -m "台湾ラーメンナルト入りおまち!"(注文どおり)git commit -m """(.+)"にマッチせず汎用フォールバックに落ち、「❌ 今は「git commit -m "..."」の番です」という文脈のずれたメッセージになるgit commit -m " "(半角スペースのみ)git commit -m " "(全角スペースのみ)git commit -m "うまいラーメン"(自由テキスト)仕様
git commit -m "")の場合、コミットを実行せずエラーメッセージを表示する❌ コミットメッセージが空です(実 git の "Aborting commit due to empty commit message." に相当)isCommittedは変化させず、ステップも進めない実装メモ
/^git commit -m "(.+)"$/iは-m ""にマッチしない(.+が1文字以上要求)ため、空文字の入力は汎用フォールバックに落ちてしまう。"(.*)"でキャプチャして中身をtrim()(全角スペース含む)で判定し、空なら専用エラーを出す形にする受け入れ条件
git commit -m ""が「コミットメッセージが空」である旨のエラーで拒否されるgit commit -m " "(半角のみ)・git commit -m " "(全角のみ)が同じエラーで拒否されるisCommittedは false のまま、ステップも進行しない検討事項
recordMiss)として記録するかは ゲーム内で git add が実質使えない(git add . が常に失敗 / 全角スペースで具材が乗らない) #36〜ブランチ名を自由に設定できるようにする(空白を含む名前は拒否) #38 の方針に合わせる関連
fix/add-and-branchName