[back]

2023-01-01 15:20:17 +09:00

# 雑記

## gitわからん

git2触り始めた。objectの種類と役割すらわからんレベルなので辛い。感覚で運用してるとこういう所でツケが帰ってくるのでほどほどにしたいがなかなか難しいねんな… とりあえずmasterブランチのcommit履歴を拾うとこまでいけた。言われてみればそうなんだけどそりゃ確かに親commitは0番目だよね…なぜ私は1番を… あとはこれを良い感じによしなに(頭痛が痛い)すれば勝ちだな!

## 開発メモ

整理のために一旦言語化したほうがよさそうなのでする。 まず、gitから持ってきたい情報は「各ファイルに対応した最終更新日時」。 んで、最終更新を見つけるためにはDiffを頭からケツまで取る感じだろうか。これ作ろうとするまで勘違いというか、考えたこともなかったけどgitは差分そのものじゃなくて各commitのスナップショットを比較してDiffを出してるらしいからこれしかなさそう。 -> 一番最初に思いついた。まず全ファイルの辞書を用意して、Diffが見つかった物からそのcommitの時間を当てていく。一度見たファイルは無視するようにすれば、頭からだから恐らく最新の更新時刻が取れるはず。

フロー

Repository読み出し -> masterブランチ読む -> 最新commit読む -> treeからファイル辞書を作る 'loop: (たぶんwhile使う) -> 親commitとのDiffを作る -> Diffで差異のあったファイルについて辞書に登録する -> 親の親がなければbreak ↑ goto 'loop