Arch

曖昧さ回避 この項目では、バージョン管理システムについて説明しています。その他の用法については「Arch (曖昧さ回避)」をご覧ください。

arch(アーク)は、分散型バージョン管理システムである。ただし、archと書いた場合には、特定のコマンドを指すものではなく、archのプロトコルに沿ったリポジトリ(アーカイブ)操作を行えるツールの総称として扱われている。設計および主な実装はTom Lordが行った。

archの種類

現在使われている主なarchの実装としては、

などがある。

archの動作

archはCVSSubversionと同様にバージョンを管理する場所(リポジトリ)を持ち、それをアーカイブと呼ぶが、CVSやSubversionと異なり、集中させる必要がない。必要であれば、他人のアーカイブを分岐させたローカルのアーカイブを作成し、開発に利用することができる。後になって、分岐したアーカイブでの成果を取り込む(マージ)必要があれば、それを行うための補助機能が用意されている。

archでの主な操作

GNU arch(tlaコマンド)での操作例を以下にあげる。

アーカイブの作成

$ tla make-archive [email protected] /home/foo/{archives}/2004

これにより、アーカイブ[email protected]が作成され、データの実体が/home/foo/{archives}/2004に配置される。例はローカルファイルであるが、それ以外にWebDAVSSH (SFTP)、FTP越しに置くことも可能となっている。

アーカイブに置かれたデータの参照

$ tla categories -A [email protected]
$ tla branches -A [email protected] libA
$ tla versions -A [email protected] libA--main
$ tla revisions -A [email protected] libA--main--X.Y.Z

データにはカテゴリ名、ブランチ名、バージョン名、リビジョン名の4つが通常要求されるため、それぞれを確認するためのコマンドが用意されている。

アーカイブからデータを取得する

libA--mainブランチの最新版を取得

$ tla get -A [email protected] libA--main

libA--main--X.Y.Zの最新リビジョンを取得

$ tla get -A [email protected] libA--main--X.Y.Z

libA--main--X.Y.Z--patch-nリビジョンを取得

$ tla get -A [email protected] libA--main--X.Y.Z--patch-n

編集したアーカイブを登録する

ログを作成

$ tla make-log

登録

$ tla commit

ローカルコピーを最新版に更新する

ローカルの修正を考慮して試みる

$ tla update

ローカルの修正を無視して更新

$ tla replay

変更記録 (ChangeLog) を作成

$ tla changelog
括弧内の年は正式バージョンのリリース年。†の製品はリリース終了、もしくは更新が長期間途絶えている製品。
ローカルのみ
フリー/オープンソース
プロプライエタリ
  • PVCS(英語版) (1985)
C/S型
フリー/オープンソース
プロプライエタリ
分散型
フリー/オープンソース
  • BitKeeper (1998)†
  • GNU arch (2001)†
  • Darcs(英語版) (2002)
  • DCVS(英語版) (2002)†
  • SVK(英語版) (2003)†
  • Monotone(英語版) (2003)†
  • Codeville(英語版) (2005)†
  • Git (2005)
  • Mercurial (2005)
  • Bazaar (2005)
  • Fossil (2007)
  • Veracity(英語版) (2011)
プロプライエタリ
  • TeamWare(英語版) (1990年代?)†
  • Code Co-op(英語版) (1997)†
  • Plastic SCM(英語版) (2006)
概念
  • カテゴリ
  • 一覧
  • 比較(英語版)