日常的なarchの利用
概要
GNU Archは分散型レポジトリを基本としたバージョン管理システムである.
すでに広く利用されているバージョン管理システムには,cvsなどがある.
このページはGNU Archの実装であるtlaを実際に利用する場合のワークフローを紹介する.
編集作業のフロー
- tla replay でレポジトリの変更をワーキングコピーに反映
- 編集,テスト
- tla changes --diffs で変更点を確認
- tla commit -L 'xxx' で変更をコミット
リリース毎程度に,ときどき tla cacherevをして,リビジョンをキャッシュする.
archは,base-0バージョンをtar.gz形式でもっており,それ以降の
patch-Xバージョンのパッチを順次適用することで最新版を作成するため,
tla get に壮絶に時間がかかることになる.
チェックアウト
- tla register-archive アーカイブのコード名 アーカイブの場所
- tla get -A アーカイブのコード名 カテゴリ名
すでに他のシステムでチェックアウトしている物の場合,
アーカイブのコード名は,tla tree-versionでわかる.
対応するアーカイブの場所はtla archivesで確認できる.
レポジトリの新規作成
- まだアーカイブを作成していないのであれば,
mkdir /path/to/arch/ tla make-archive アーカイブ名 /path/to/arch/archive(ディレクトリもしくはURL) でアーカイブを作成.
tlaはディレクトリを作成してくれるが,その一段上のディレクトリまでは事前に作成しておく.
アーカイブ名の命名の規則として メールアドレス--年度 を作者は推奨している.
- tla archive-setup -A アーカイブ名 カテゴリ--ブランチ--バージョン
- tla init-tree -A アーカイブ名 カテゴリ--ブランチ--バージョンでカレントディレクトリをarch対応にする
- tla my-default-archive XXXでデフォルトアーカイブを指定しておく
- tla add ファイル名
- tla import -L 'ログ'
ブランチ
- tla archive-setup カテゴリ--ブランチ--バージョンでcategoryを作成しておく.
- tla tag アーカイブ名/カテゴリ--ブランチ--バージョン(ブランチ元) カテゴリ--ブランチ--バージョン
ローカルのレポジトリに複製ができる.
- tla get XXXXチェックアウトでき,そこでの作業は通常の編集作業.
ブランチ元のレポジトリに反映するには,マージ作業が必要.
マージ
- tla tree-versionでマージ元のワーキングコピーの状況を確認
-
マージ先のワーキングコピーで
tla star-merge マージ元のバージョン
- コンフリクトが発生した場合には.rejファイルの対応
- tla changes --diffsで変更を確認.
- tla commitでマージ先の変更をコミットする.
xtla
commit
- C-x T =: 差分を表示する
- C-x T c: Changelogを編集する
- C-c C-c: commit
update
- C-x T u: tla updateを実行. (replayはできない?)
参考
- axp: 未調査: archのCUI フロントエンドらしい.
- larch: 未調査: tlaの前の実装だったような気がする
- archzoom: 未調査: archのwebインタフェース. Debian dpatchの頁例
- cscvs: 未調査: archとcvsをうまく扱うためのツールのよう
- tla-load-dirs: 未調査: upstreamをtlaにインポートするためのツール
- svn-arch-mirror: 未調査: subversion のレポジトリをarchに変換
- bazaar: 未調査: tlaと互換性があるような雰囲気.インタフェースはCVSに近くなっている
- bazaar-ng: 未調査: 互換性がおそらく無いと思われるツール
- GNU arch 2.0: 未調査: バックエンドがgitになってしまったツールらしい.
- xtla: emacs用フロントエンド
Junichi Uekawa
$Id: arch.html.ja,v 1.4 2005/10/08 16:27:04 dancer Exp $