フランス拠点の障害対応、現地語コミットログを英語で追う手順

这篇内容暂时只有 日本語 版本,以下是原文。

フランス拠点のリポジトリで、障害対応中に原因コミットを探そうとして詰まった経験がある。環境はGitLab 16系、ブランチは数百、直近3ヶ月のコミットが約4000件。開発者はフランス語でコミットメッセージを書く人が多く、git log --grep に英語のキーワードを入れてもほぼヒットしない状態だった。

まずやったのは、検索対象をメッセージ本文から変更ファイルと差分に移すこと。

git log --since="3 months ago" --format="%h %ad %an %s" \
  --date=short -S "payment_timeout" -- "src/"

-S は文字列の増減を追うので、メッセージがフランス語でもコード上の識別子が英語なら辿れる。設定キーや例外クラス名は英語で残っていることが多く、ここは期待通り機能した。

次に、メッセージ側は諦めて本文の構造だけ拾うようにした。フランス語の動詞は活用で形が変わるため、--grep="corrig" のような語幹指定でも取りこぼす。代わりに Refs: や JIRA- のチケット番号を頼りにした。

git log --since="3 months ago" --grep="PROJ-" --format="%h %s"

番号から課題管理側に飛べば、そこには英語か少なくとも構造化された説明がある。メッセージの自然言語を読むより速い。

この方法の前提は、識別子とチケット番号が英語・数字で運用されていること。逆に、設定値や文言がフランス語のままコードに埋まっている箇所は -S でも拾いにくい。実際、表示文言の修正コミットは最後まで特定できず、レビュー履歴から辿ることになった。また -S は差分全体を走査するので、大きいリポジトリでは範囲を --since とパスで絞らないと待たされる。

コミットメッセージの言語を統一する運用は現実的ではなかった。検索側をコードとチケット番号に寄せたほうが、少なくとも自分たちの現場では再現性があった。

フランス語のコミットで、英語の識別子が残っていなかった場合、皆さんはどうやって原因コミットまで辿っていますか。

0
赞同度 100% · 0 条评论 · 3 阅读

0 条评论

支持 Markdown · 回复会实时推送给对方

还没有评论,写下第一条。