nDiki

2013年11月15日 (金)

GitHub トレーニングチームから学ぶ Git の内部構造 #githubjp に行ってきた

naney:10867844766

GitHub 主催の「GitHub トレーニングチームから学ぶ Git の内部構造」に行ってきた。会場は Yahoo! JAPAN のある東京ミッドタウン。

内容的には「入門Git」の始めの方で説明されている Git のデータ構造(もはやファイルシステム)について。「Git の内部: グラフ、ハッシュ、圧縮」というのがトピックとのことだったので、漠然と Gitソースコードレベルでの話題になるのかなと思っていたのだけれど、そうでなかった。

新しく知った事:

  • ./git/objects/<..>/<filename> の<..> の2文字はオブジェクト ID の最初の2文字(大量ファイルのディレクトリ分割のためというのはわかっていたけれど、ああ単純に最初の2文字だったんだ)。
  • git fsck でリポジトリの不整合が見つかっても復旧はできない。復旧バックアップからすること。
  • pack という処理がある。詳しくは後で調べる。

オブジェクトが不変でかつ同じ内容ならオブジェクト ID が必ず同一になることを利用して、オブジェクトファイルを共用していることを発表中「ハードリンク」と言ってしまったけれど、多くの人がファイルシステムのハードリンクで実現されていることと勘違いしていた模様。質問を受けて説明しなおしていたけど。

ちなみに実際にファイルシステム上でハードリンクになるのは、ローカルリポジトリを指定して clone した時。大きなリポジトリでもローカル内で clone する分にはストレージ容量的にはあまり気にしなくて大丈夫。

スポンサード リンク
[ 11月15日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.195469s / load averages: 1.03, 0.73, 0.92
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker