9月になってしまった。
科研費の独立基盤形成の書類を一つ提出。これであとひとつのはず。
健康診断の予約したぞ。
久しぶりに迷惑メールみたら、8月16日に友人から久しぶりに来てたメールが迷惑メールに振り分けられているのを発見。Gmailの迷惑メール判定、もう信頼できない(偽陽性が多すぎる)ので、数日に一度は見に行かないとダメだな……
git rebaseの説明をZennに書いた。こうしてトピックごとにZennに書いて、思考を整理してから講義ノートにまとめていくスタイル。
Linuxのコマンドグルーピングというものを知った。echoの結果とcatの結果を、この順番でファイルに落としたい。
普通にやるなら中間ファイルが必要。
echo "Hoge" > head.txt
cat head.txt tail.txt > total.txt
しかし、中括弧で囲むとこんなことができる。
{echo "Hoge"; cat tail.txt;} > total.txt
これで、Gitのハッシュを調べることができる。こんなファイルを考える。
Hello Git!
Gitのハッシュを調べる。
$ git hash-object test.txt
106287c47fd25ad9a0874670a0d5c6eacf1bfe4e
Gitのハッシュはsha1sumなのだが、このまま食わせると違うものになる。
$ shasum test.txt
871fc2d049fbfab104eeca13c37ff938a1ffaf3d test.txt
これは、頭にblob filesize\0というヘッダがついているから。filesizeはファイルサイズ。\0はヌル文字。
ファイルサイズを調べる。
$ wc -c < test.txt
11
11バイトなので、blob 11\0をヘッダとして追加し、それをshasumにかける。
$ { echo -en 'blob 11\0'; cat test.txt; } | shasum
106287c47fd25ad9a0874670a0d5c6eacf1bfe4e -
$ git hash-object test.txt
106287c47fd25ad9a0874670a0d5c6eacf1bfe4e
よしよし、無事に一致した。