Umieść wszystkie kopie zapasowe w jednym folderze kopii zapasowej

15

Jak skonfigurować Emacsa, aby wszystkie kopie zapasowe były umieszczone w jednym folderze kopii zapasowej? na przykład/MyEmacsBackups

Luke Shimkus
źródło
Należy pamiętać, że może to spowodować niezamierzony efekt uboczny pozostawiania poufnych informacji na komputerze, nawet po przeniesieniu / usunięciu oryginałów. Zaleca się od czasu do czasu wyczyścić ten folder kopii zapasowej. Te pliki kopii zapasowych mogą mieć także inne uprawnienia niż oryginały.
nispio

Odpowiedzi:

17

Sprawdź backup-directory-alist, który pozwala ustawić lokalizacje kopii zapasowych według wyrażenia regularnego pliku. Aby wszystko poszło do jednego katalogu, spróbuj czegoś takiego:

(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))

Dla prawdziwie paranoików (takich jak ja) istnieje również kopia zapasowa każdego zapisu , która (jak sama nazwa wskazuje) tworzy kopie zapasowe plików za każdym razem, gdy są zapisywane w dogodnej lokalizacji. Zapewnia to dodatkową warstwę ochrony w stosunku do tradycyjnej kontroli wersji, na przykład w przypadkach, gdy przypadkowo wyczyścisz katalog roboczy bez sprawdzania czegoś.

shosti
źródło
12

Poniżej znajduje się szybki kod z mojego .emacs. Nie tylko umieszcza kopie zapasowe w określonym katalogu, ale także automatycznie zapisuje i robi to samo w przypadku plików trampowych, aby nie były one umieszczane w systemie zdalnym.

;; Put backup files neatly away                                                 
(let ((backup-dir "~/tmp/emacs/backups")
      (auto-saves-dir "~/tmp/emacs/auto-saves/"))
  (dolist (dir (list backup-dir auto-saves-dir))
    (when (not (file-directory-p dir))
      (make-directory dir t)))
  (setq backup-directory-alist `(("." . ,backup-dir))
        auto-save-file-name-transforms `((".*" ,auto-saves-dir t))
        auto-save-list-file-prefix (concat auto-saves-dir ".saves-")
        tramp-backup-directory-alist `((".*" . ,backup-dir))
        tramp-auto-save-directory auto-saves-dir))

(setq backup-by-copying t    ; Don't delink hardlinks                           
      delete-old-versions t  ; Clean up the backups                             
      version-control t      ; Use version numbers on backups,                  
      kept-new-versions 5    ; keep some new versions                           
      kept-old-versions 2)   ; and some old ones, too                           
Jorgen Schäfer
źródło
1
;; put all backup files into ~/MyEmacsBackups
(setq backup-directory-alist '(("." . "~/MyEmacsBackups")))
(setq backup-by-copying t)
CyberSnoopy
źródło
Jakie korzyści ma Twoja odpowiedź w porównaniu z Shosti?
Gilles „SO- przestań być zły”
0

Umieść to w swoim pliku init. Zmień ścieżkę do wybranego katalogu kopii zapasowej.

;;backup directory
(setq backup-directory-alist '(("" . "~/.emacs.d/emacs_backup")))
Nsukami _
źródło