タグ

2014年6月22日のブックマーク (4件)

  • Gitが連想配列記憶装置であることを低レイヤーな操作を通して体感しよう! - Qiita

    誤解を恐れずに言えば、Gitとは一つの連想配列ストレージシステムです。 かっこよく言うと Key Value Storeです。 Gitがやっていることの質は、あなたのコンテンツを圧縮してDBに保存し、あなたの要求に応じてDBから取り出して解凍する、ただそれだけです。 具体的には KVSでのsetにあたる命令がgit add,git commit KVSでのgetにあたる命令がgit checkout です。 そしてデータベースとは.git/object/ ディレクトリ配下にあるファイル群のことです。 さて今回はgit checkoutコマンドを使わずに低レイヤーなコマンドだけを使って同じことを実現してみましょう。 準備 新規レポジトリを作成して、"hello world"と書かれたファイルをコミットします。 git init dqneo echo hello world > hello.

    Gitが連想配列記憶装置であることを低レイヤーな操作を通して体感しよう! - Qiita
  • Git submodule の基礎 - Qiita

    この記事は Git Advent Calendar 6日目の記事です! Git submodule って最初わかりにくいと思うので、基的な説明をしようと思います。 git submodule とは git submodule は、外部の git リポジトリを、自分の git リポジトリのサブディレクトリとして登録し、特定の commit を参照する仕組みです。 Subversion でいうところの、external と似ています。 さて、解説のため、手元に、リポジトリA (/path/to/a) とAの submodule として、よく使う例として Bootstrap (元Twitter Bootstrap) を登録してみます。 git submodule を理解するうえで重要なのは、 リポジトリAが指し示すsubmoduleとしてのBootstrapのcommit 現在のBootstr

    Git submodule の基礎 - Qiita
  • Git の仕組み (1) - こせきの技術日記

    目次 はじめに Git を使ったことがない方へ 生のデータが見たい方へ Git の全体像 .git の中身 Git オブジェクトデータベース 4種類のオブジェクト リファレンス リファレンスのリファレンス 大きなツリー Git オブジェクトの ID と 中身 ハッシュ関数 SHA1 の簡単な説明 tree と blob オブジェクト tree と blob の参照関係 ルートツリーの ID でツリー全体を識別する commit オブジェクト リファレンスとブランチランチランチ先頭を指すリファレンス HEAD リファレンス detached HEAD 2種類のタグ 一時待避 (stash) インデックス キャッシュとしての役割 マージ Fast-Forward マージ non Fast-Forward マージ rebase reset 2種類のブランチ 各リポジトリが自分のブランチ

    Git の仕組み (1) - こせきの技術日記
  • LevelDB入門 (基本編) - from scratch

    さて、今回は比較的新しいデータストアであるLevelDBについてまとめてみました。 LevelDBは1年ほど前からNode.js界隈ではブームが来ていて、理由がよくわかっていなかったんですが、まとめている内に分かるかなと思ってまとめました。今回はNode.js無関係でLevelDBの基礎的なことだけ調査した結果をまとめてみました。 Node.jsで使ってみる話は後に回します。 LevelDBとは? key-value型のデータストアの一つです。 Googleの研究者である、Jeff DeanとSanjey Ghemawatが開発し、2011年に公表されました。C++で書かれており、多くのプログラミング言語でbindingsが書かれています。もちろん、JavaScript/Node.jsでも書かれています。 LevelDBGoogle のBigTableをベースにしたアーキテクチャを持

    LevelDB入門 (基本編) - from scratch