付録 A. arch のチェンジセット形式

arch のチェンジセットはたくさんのファイルやサブディレクトリの あるディレクトリです。それぞれについて以下で説明していきます。

ファイル:

        orig-dirs-index
        mod-dirs-index
        orig-files-index
        mod-files-index

形式:
        <file path><tab><tag>
ソート:
        sort -k 2

これらは、二つのツリー間でおきた、追加、削除、修正がおきたすべてのファイル とディレクトリのインデックスが入っています。

ファイル:
        original-only-dir-metadata
        modified-only-dir-metadata
形式:
        <metadata><tab><name>
ソート:
        sort -t '<tab>' -k 2

フィールド<metadata>は、オプション–– permissionsで 与えたプログラム file-metadata からの出力が入っています。出力例としては:

        --permissions 777

この出力はまた、オプションとしての利用や、プログラムset-file-metadata へのオプション引数としても適切なものになっています。今後のリリースで、 arch は追加フラグをサポートするかも知れません。 (単なる permissionsに加えて)。

そのリストは、二つのツリーのどちらか一方に現れるすべてのディレクトリの ファイルパーミッションを記録します。

Directories: removed-files-archive new-files-archive

これらのディレクトリはそれぞれ、元のツリー(removed-files-archive) または、修正されたツリー(new-files-archive)のみに現れるすべての ファイルの完全なコピーを含んでいます。それぞれの保存されたファイルはそのソースツリー 中の同じ相対的な場所にアーカイブされ、パーミッションは(少なくとも)保存されます。

Directory: patches

このディレクトリは、そのディレクトリ構造が、修正されたツリーの ディレクトリ構造のサブセットであるようなツリーを含んでいます。 それは、両方のツリーに共通のディレクトリとファイルに修正したデータ を含んでいます。

パスnew_nameにある修正されたツリーに保存されたファイル について、patches ディレクトリは以下のようなものを 含んでいます:

new_name.link-orig

元のファイルはシンボリックリンクです。 new_name.link-origは、そのリンク先と、改行を 含んだテキストファイルです。

このファイルはリンク先が変更された場合のみ存在します。または リンクが通常のファイルによって置き換えられた場合のみ存在します。

new_name.link-mod

修正されたファイルはシンボリックリンクでこのファイルはリンク先と改行 を含んだテキストです。

このファイルはリンク先が変更された場合のみ存在するか、または 通常のファイルをリンクが置き換えた場合のみ存在します。

new_name.original

これは元のツリーからのファイルの完全なコピーです。(少なくても) パーミッションも保存されています。

このファイルはファイルがシンボリックリンクで置き換えられたか、 ファイルの内容がdiff(1)で扱うことが できない場合にのみ存在します。

new_name.modified

これは、修正されたツリーのファイルの完全なコピーです。 (少なくても)パーミッションも保存されます。

このファイルは、ファイルがシンボリックリンクを置き換えたか、 ファイルの内容がdiff(1)で扱えない 場合にのみ存在します。

new_name.patch

これは元のファイルと修正されたファイルとの間の標準的なコンテキスト diff です。 diff のある有名なバージョン(GNU diff) では、 元と修正先のファイル間で同じであるコンテキスト行のコピーを省略する ような、非標準的なコンテキスト diff を生成するので、(XXX) .patch ファイルも同じバグを含んでいます。 幸運にも、patchの唯一のよく知られたバージョン (``GNU patch'') は、そのような入力を我慢して受け取ることが できます。

new_name.meta-orig, new_name.meta-mod

ファイルのメタデータ(現在のところ、パーミッション情報のみ)はファイルの二つの バージョン間で変更されました。これらのファイルは–– symlink –– permissions フラグつきのfile-metadata プログラムからの出力を含んでいて、 同様の出力との比較、オプションとしての利用、set-file-metadata に対するオプション引数、として適した形です。

これらのファイルも通常のファイルがシンボリックリンクを置き換えたり、 逆のことがおきた場合に含まれます。

new_name/=dir-meta-orig, new_name/=dir-meta-mod

ディレクトリのメタデータ(現在のところパーミッション情報のみ)が、それらの ファイルを含むディレクトリの二つのバージョン間で変更されました。これらの ファイルは–– symlink –– permissionsフラグつきの file-metadata プログラムからの出力を含んでいて、 同様の出力との比較、オプションとしての利用、そしてset-file-metadata へのオプション引数、として適した形をしています。

注意: もし普通のファイル(またはシンボリックリンク)が ディレクトリを置き換えるか、その逆の場合、これは一方のツリーでファイル(またはリンク) が削除(または追加)され、もう一方で、追加(または削除)されたものとして記録されます。