リポジトリ

リポジトリ: repository[1])またはレポジトリは、バージョン管理システムでは、ソースコードやディレクトリ構造のメタデータを格納するデータ構造のこと。

概要[編集]

「リポジトリ」の原義は「貯蔵庫」、「保管場所」である(wikt:repository)。バージョン管理システムではソースコード等の管理対象を溜めておく場所をリポジトリと呼ぶ。すべてのユーザーのシステムに重複したリポジトリを持つ分散型 (GitMercurial) と、単一のサーバーでリポジトリが管理される集中型 (SubversionCVSなど) が存在する[2]。あらゆる第三者に開かれているリポジトリをパブリックリポジトリ(英: public repository)といい、権利者のみが利用できるものをプライベートリポジトリ(英: private repository)という。

リポジトリには以下のメタデータが含まれる。

  • リポジトリ内の変更履歴。
  • コミットオブジェクト一式。
  • ヘッドと呼ばれる、コミットオブジェクトへの参照のセット。

用途[編集]

リポジトリの主な目的は、一連のファイルと、それらのファイルに加えられた変更の履歴を保存することである[3]。 バージョン管理システムが変更の保存を処理する方法は、各々のシステムに依存しており正確には異なる。たとえば、Subversionは昔は変更履歴をデータベースインスタンスに保存していたが、ファイルシステムに直接保存するようになった[4]。 これらの方法論の違いは、さまざまなグループによるニーズの違いに応じた多様な使い方に繋がった[5]

利用[編集]

特にパブリックリポジトリはテキストマイニング等の解析の対象として利用される。主にソースコード作成支援やバグへの対処などに用いられる。

第三者からアクセス可能なリポジトリへ対象を配置することで、リポジトリを配布のための拠点として利用できる。例えばパブリックGitレポジトリは誰でもcloneすることで入手できる。

脚注[編集]

  1. ^ SVNBook”. 2012年4月20日閲覧。
  2. ^ Version control concepts and best practices” (2018年3月3日). 2020年4月27日時点のオリジナルよりアーカイブ。2020年7月10日閲覧。
  3. ^ Getting Started - About Version Control”. Git SCM. 2020年12月21日閲覧。
  4. ^ Ben Collins-Sussman; Brian W. Fitzpatrick; C. Michael Pilato (2011). “Chapter 5: Strategies for Repository Deployment”. Version Control with Subversion: For Subversion 1.7. O'Reilly. http://svnbook.red-bean.com/en/1.7/svn.reposadmin.planning.html#svn.reposadmin.basics.backends 
  5. ^ Different approaches to source control branching”. Stack Overflow. 2014年11月15日閲覧。

関連項目[編集]