regexps.com
ここまでで習ったことは, 最初のアーカイブを作ること, プロジェクトを 始めること, 最初のソ-スとその後の変更をチェックインすること, それと, 過去の revision を取得することでした.
本章では, ネットワーク上で取得可能なアーカイブの作り方を習います. そして, 複数のプログラマが一つのアーカイブを共有する方法を習いはじめます.
アーカイブが, 論理名および物理的な位置の両方を持ってることを思い出して下さい:
% tla archives lord@emf.net--2003-example ^^^^^^^^^^^^^^^^^^^^^^^^^^ | /usr/lord/{archives}/2003-example | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | アーカイブの位置 | アーカイブ名
(新規アーカイブの作成参照.)
アーカイブのなかにはネットワークからアクセスできるものもあります. 現在は以下のプロトコルが使えます:
FTP SFTP WebDAV plain HTTP
本章の後のほうで, このようなアーカイブを作成する方法を習います.
まず覚えるべきことは, このようなアーカイブにアクセスするために, アーカイブ名と物理的な位置を登録することです. 物理的な位置は URL を 使って指定します.
例えば, HTTP または WebDAV のアーカイブにアクセスするには:
% tla register-archive lord@emf.net--2003b \ http://regexps.srparish.net/{archives}/lord@emf.net--2003b
FTP アーカイブの場合は:
% tla register-archive lord@regexps.com--2002 \ ftp://ftp.regexps.com/{archives}/lord@regexps.com--2002
上記のコマンドが有効に働いたのを確認するには:
% tla archives lord@emf.net--2003b http://regexps.srparish.net/{archives}/lord@emf.net--2003b lord@emf.net--2003-example /usr/lord/examples/{archives}/2003-example lord@regexps.com--2002 ftp://ftp.regexps.com/{archives}/lord@regexps.com--2002
追加のアーカイブを登録した後, どのようにしてアクセスするのでしょうか。
自明な方法は, 使いたいアーカイブをデフォルトにすることです:
% tla my-default-archive lord@emf.net--2003 % tla categories [... リモートアーカイブのカテゴリ ...]
もちろん, デフォルトアーカイブを変更し続けるのは不便でしょう. とりあえず, デフォルトアーカイブを元のに戻しましょう:
% tla my-default-archive lord@emf.net--2003-example
リモート・アーカイブにアクセスする方法が, 他に二つあります:
アーカイブに作用するすべてのコマンドは -A
オプションを受け付けます. これで, デフォルトより優先的に使うことができます:
% tla my-default-archive lord@emf.net--2003-example % tla categories -A lord@emf.net--2003 [... lord@emf.net--2003 のカテゴリ ...]
使用上の注意: -A
の引数はデフォルトアーカイブよりも優先しますが, 完全修飾プロジェクト名 (fully qualified project names) による指定の方が優先します (以下参照).
プロジェクト名を受けとるコマンドでは, 完全修飾プロジェクト名 (fully qualified project names) を使うことができます. 完全修飾名 (fully qualified name) の構成は, アーカイブ名を前に置き, スラッシュ (/) を続け, プロジェクト名が続きます:
カテゴリ名 (category name): tla => lord@emf.net--2003/tla ブランチ名 (branch name): tla--devo => lord@emf.net--2003/arch--tla バージョン名 (version name): tla--devo--1.0 => lord@emf.net--2003/tla--devo--1.0 リビジョン名 (revision name): tla--devo--1.0--patch-1 => lord@emf.net--2003/tla--devo--1.0--patch-1
次の例のような具合です:
% tla my-default-archive lord@emf.net--2003-example % tla branches lord@emf.net--2003/hello-world [... lord@emf.net--2003 の hello-world 中のブランチ ...]
使用上の注意: 完全限修飾名は -A
の引数およびデフォルトアーカイブの両方より優先します。
オペレーティングシステムとサーバのアクセス制御を使って, 一部のまたは全てのユーザを読み出し専用でアクセスするようにできます. 例えば, FTPは匿名のユーザによるアーカイブの読み出しを許しますが, 修正を許さないように, 通常は設定されます.
ミラー は, その内容が別のアーカイブから複製されたアーカイブです。 通常の方法でミラーにコミットすることはできません. ソースのコピーの更新のみができます.
ミラーアーカイブには2つの主要な用途があります: 一つはリモートミラーのローカルコピーを作ることです (ネットワークを介せずにその内容にアクセスできるようになります); もう一方はローカルアーカイブのリモートコピーを作ることです (他の人がそのコピーにアクセスできるようになります)。
リモートアーカイブにできるだけ速くアクセスしたい, もしくは, ネットワークに接続してないときでも使いたいとしましょう. このために, リモートアーカイブをローカルにミラーします.
例題は lord@emf.net--2003b
です
($remote_location は http://my.site.com//archives/lord@emf.net--2003b
のようなものだとします).
三つの段階があります.
まず, リモートアーカイブを, その名前に -SOURCE
を
後置した仮称 (pseudonum) で登録します:
% tla register-archive lord@emf.net--2003b-SOURCE $remote_location
次に, ローカルミラーを作成します:
% tla make-archive --mirror-from lord@emf.net--2003b-SOURCE $local_location
このコマンドは, 副作用として, lord@emf.net--2003b
を
ローカルミラー名として登録します.
最後に, リモート・アーカイブからデータをコピーします:
% tla archive-mirror lord@emf.net--2003b
リモートのアーカイブが追加された場合は常に, tla archive-mirror
の段階を繰り返して追加的にミラーを更新できます。
アーカイブ全体をミラーしたくなければ, 特定のカテゴリ, ブランチあるいはバージョンのみを制限してミラーするようにできます。 詳しくは tla archive-mirror -H で参照してください。
ローカルアーカイブ mine@somewhere.com
を持っていて,
そのアーカイブミラーをインターネットで "公開" して,
他の人が読めるようにしたいとします.
すでに mine@somewhere.com
を登録してるなら,
リモートミラーが作成できます:
% tla make-archive --mirror mine@somewhere.com $remote_location
arch は $remote_location に直接書き込みます. そのため, sftp のような書き込み可能なものである必要があります. 標準的な http は使えません.
リモートミラーの内容の初期化や, 追加的な更新は以下のようにできます:
% tla archive-mirror mine@somewhere.com
ウェブサイトの一部として静的なファイルをインストールできても, そこに WebDAV でアクセスはできない. ということがよくあります. このような状況でも arch のアーカイブを公開できますが, 二つ細いことがあります.
まず, make-archive を実行するときに, 特別なフラグを加えることが必要です:
% tla make-archive --listing --mirror mine@somewhere.com \ $remote_location
--listing
フラグは, ミラーの .listing
ファイルを最新版に追従させるようにします. そして, 逆に, 通常の HTTP
(WebDAV の無い)経由でアーカイブを読めるようにします.
次に, .listing
ファイルが古くなり得ることです
(例えば, archive-mirror
コマンドをうまいタイミングでkill すれば).
もしこれが起きた, もしくは, 起こったんじゃないかというときは, 問題のアーカイブを修復するのに, archive-fixup コマンドを使えます:
% tla archive-fixup mine@somewhere.com-MIRROR
リモートリポジトリを使うときにミラーするのは良くあることですが, ミラーでは無いリモートリポジトリを作成し, そこに直接コミットすることもできます.
リモートリポジトリは次のコマンドで作れます:
% tla make-archive $archive_name $remote_location
あるいは .listing ファイル付きのリモートリポジトリを作ることもできます:
% tla make-archive --listing $archive_name $remote_location
一つのアーカイブは複数のアクセス方式で利用できます.
例えば, FTP でアクセス可能なアーカイブを登録するのに, FTP のディレクトリを
持つ計算機の, ローカルなファイルシステム上を使えます. 一方, 他の利用者には
アーカイブを ftp:
の URL で登録するように頼むことはできます.
regexps.com