Previous: Backup Deletion, Up: Backup [Contents][Index]
バックアップファイルは、古いファイルをコピーまたはリネームすることで作ることができます。コピーとリネームは、古いファイルが複数の名前をもつ場合(ハードリンクされている場合)に、異なる効果をもちます。古いファイルがバックアップファイルにリネームされた場合、ハードリンクされた別の名前で参照されるファイルは、バックアップファイルとなります。かわりに古いファイルをコピーすると、ハードリンクされた別の名前で参照されるファイルは、編集中のファイルのままで、それらの名前でアクセスする内容は新しい内容となります。
バックアップファイルを作る方法は、編集中のファイルの所有者とグループにも影響します。コピーが使われた場合、それらは変化しません。リネームが使われた場合、そのユーザーがファイルの所有者となり、ファイルのグループはデフォルト(オペレーティングシステムごとにグループのデフォルトは異なります)のグループになります。
リネームとコピーの選択は、以下の変数により行われます:
backup-by-copyingが非nil(デフォルトはnil)の場合、コピーが使用されます。
backup-by-copying-when-linkedが非nil(デフォルトはnil)で、ファイルが複数の名前をもつ場合は、コピーが使用されます。
backup-by-copying-when-mismatchが非nil(デフォルトはt)で、リネームによりファイルの所有者かグループが変更される場合は、コピーが使用されます。
backup-by-copying-when-mismatchをnilに変更すると、Emacsはファイルの所有者のユーザーIDとファイルのグループのグループIDのの数字をチェックします。もしいずれかの数字がbackup-by-copying-when-privileged-mismatchの値より大きければ、backup-by-copying-when-mismatchが非nilであるかのように振る舞います。
ファイルがバージョンコントロールシステムで管理されている場合(Version Controlを参照)、通常、Emacsは普通の方法でそのファイルのバックアップを作りません。しかしコミット(チェックインとも呼ばれる。VCS Conceptsを参照されたい)は、バックアップを作るのと似たところがあります。これらの操作は通常ハードリンクをこわし、同じファイルにたいする別のファイル名でのvisitを切断します。Emacsにできることはありません。バージョンコントロールシステムがこれを行うのです。