Previous: Backup Deletion, Up: Backup
バックアップファイルは、古いファイルをコピーする、あるいは、 それを改名することで作ります。 古いファイルに複数の名前があると、これには違いが出てきます。 古いファイルを改名してバックアップファイルにすると、 (古いファイルの)別の名前もバックアップファイルを指します。 古いファイルをコピーした場合には、 (古いファイルの)別の名前は編集しているファイルを指し続け、 その名前で参照される内容も新しい内容になります。
バックアップファイルを作る方法は、 元ファイルの所有者とグループにも影響します。 コピーするならば、何も変更されません。 改名すると、ファイルの所有者はあなたになり、 ファイルのグループはデフォルトになります (オペレーティングシステムごとにグループのデフォルトは異なる)。
所有者を変更することは、多くの場合、よいことです。
というのは、所有者がつねに最後にファイルを編集した人を表すからです。
同様に、バックアップの所有者はその版を作った人を表します。
ときには、ファイルの所有者を変更すべきでないファイルがあります。
そのようなファイルについては、
backup-by-copying-when-mismatch
をローカルに設定する
ローカル変数リストをファイルに入れておくのがよいです。
改名するかコピーするかは、3つの変数で制御されます。
デフォルトは、改名です。
変数backup-by-copying
がnil
以外ならばコピーします。
nil
のときには、
変数backup-by-copying-when-linked
がnil
以外ならば、
複数の名前を持つファイルではコピーし、
編集中のファイルには名前が1つだけなら改名します。
変数backup-by-copying-when-mismatch
がnil
以外のときには、
改名するとファイルの所有者やグループが変更されるときにはコピーします。
スーパーユーザーでEmacsを起動すると、
backup-by-copying-when-mismatch
のデフォルトはt
です。
ファイルを版管理システム(see Version Control)で管理している場合には、 通常Emacsはそのファイルのバックアップを通常の方法では作りません。 チェックインとチェックアウトは、 ある意味でバックアップを作ることに似ています。 残念なことに、 これらの操作は典型的にはハードリンクを切るという 類似性があります。 つまり、あるファイルの別の名前を使っていたとすると そのファイル名がなくなるのです。 Emacsにできることはありません。 版管理システムが処理します。