OVH Cloud OVH Cloud

politique de backup d'Emacs - sondage

12 réponses
Avatar
Vincent Lefevre
Bonjour,

Emacs fait des backups de certains fichiers, et désactive les backups
dans certains cas particuliers: fichiers gérés par système de contrôle
de version (e.g. Subversion) et fichiers qui sont descendants de
certains répertoires (e.g. /tmp, /var/tmp).

Il s'agit du comportement *par défaut*. Trouvez-vous cela normal?

Je pense que l'utilisateur n'est pas forcément au courant qu'il existe
de tels cas particuliers et peut être très désagréablement surpris
quand il ne trouve pas de backup pour le fichier qu'il vient d'effacer
par erreur (c'était mon cas).

Concernant la règle pour les fichiers gérés par système de contrôle de
version, il peut se passer plusieurs heures (voire plusieurs jours) avec
plusieurs éditions du fichier avant un commit, donc je ne vois pas la
raison de désactiver les backups, tout du moins pour le comportement par
défaut. Ceci, même si la majorité des utilisateurs utilisant un système
de contrôle de version préfère l'absence de backup pour ces fichiers.

Note: je pense qu'on est bien d'accord que le système de backup d'Emacs
est un système à court terme, et qu'il complète d'autres systèmes de
backup à plus long terme (en cas de panne de disque, etc.).

--
Vincent Lefèvre <vincent@vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)

10 réponses

1 2
Avatar
Radamanthe
Vincent Lefevre wrote:
Bonjour,

Emacs fait des backups de certains fichiers, et désactive les backups
dans certains cas particuliers: fichiers gérés par système de contrôle
de version (e.g. Subversion) et fichiers qui sont descendants de
certains répertoires (e.g. /tmp, /var/tmp).

Il s'agit du comportement *par défaut*. Trouvez-vous cela normal?



Particulier on va dire. Sinon, l'explication est simple :

En ce qui concerne /tmp et /var/tmp, ce sont les répertoires unix pour
les fichiers temporaires du système. De part leur nature
"auto-destructrice", on n'est pas censé travailler sur un fichier
important directement dans ces répertoires, si tant est qu'il y en ait
un. Ou alors on le sort de là avant. Encore que dans la quasi-totalité
des cas, on veut juste jeter un oeil.

Pour les fichiers en source control, la raison parait évidente mais...

Je pense que l'utilisateur n'est pas forcément au courant qu'il existe
de tels cas particuliers et peut être très désagréablement surpris
quand il ne trouve pas de backup pour le fichier qu'il vient d'effacer
par erreur (c'était mon cas).



C'est fort regrettable, en effet.

Concernant la règle pour les fichiers gérés par système de contrôle de
version, il peut se passer plusieurs heures (voire plusieurs jours)



C'est trop. Tu mets chaque jour de travail à la merci du crash disque,
penses-y :)

avec
plusieurs éditions du fichier avant un commit, donc je ne vois pas la
raison de désactiver les backups, tout du moins pour le comportement par
défaut. Ceci, même si la majorité des utilisateurs utilisant un système
de contrôle de version préfère l'absence de backup pour ces fichiers.



En source control, en principe le commit doit être fait le plus souvent
possible tant que ça ne met pas en doute l'intégrité de la base (genre
ça compile plus). Si dans la pratique ce n'est pas possible (plusieurs
jours de travail sur une nouvelle feature, gros chamboulage...), CVS et
Subversion proposent un système de branches pour ne pas déranger la
racine du projet (voir main-line, trunk, branches, tags).

On peut ainsi se permettre d'avoir une base parallèle complètement
foireuse, le temps d'aller se pieuter pour mieux "dépiauter" le lendemain.

Bon tout ça, c'était pour la petite histoire, mais je suis d'accord avec
toi : par défaut, ça ne devrait pas être activé.



--
R.N.
Avatar
Vincent Lefevre
Dans l'article <45b17305$0$2315$,
Radamanthe écrit:

En ce qui concerne /tmp et /var/tmp, ce sont les répertoires unix
pour les fichiers temporaires du système. De part leur nature
"auto-destructrice", on n'est pas censé travailler sur un fichier
important directement dans ces répertoires, si tant est qu'il y en
ait un.



Je ne vois pas ce que tu entends par "auto-destructrice". /tmp peut être
effacé lors d'un reboot, mais au moins avec Linux, c'est optionnel. Et
/var/tmp n'est jamais effacé après un reboot (d'après ce qu'on m'a dit,
c'est *la* différence avec /tmp). Donc, dans l'hypothèse où l'utilisateur
serait administrateur de sa machine (ça arrive de plus en plus), je ne
pense pas que les considérer comme répertoires classés à part pour les
back-up soit une bonne chose, d'autant plus qu'il peut y avoir de bonnes
raisons de travailler dedans: prends l'exemple de quelqu'un qui administre
sa machine, qui a son répertoire home sous NFS et qui travaille dans /tmp
pour une question de rapidité (sans pour autant avoir besoin de créer un
répertoire local ailleurs).

> Concernant la règle pour les fichiers gérés par système de contrôle de
> version, il peut se passer plusieurs heures (voire plusieurs jours)

C'est trop. Tu mets chaque jour de travail à la merci du crash disque,
penses-y :)



Mais ce n'est pas spécifique aux fichiers gérés par système de contrôle
de version. En général, je me débrouille pour faire des backups réguliers
à la main (que ce soit par "svn ci" ou par scp, suivant le cas). Mais en
tout cas, cela n'explique pas pourquoi Emacs fait des backup de certains
fichiers et pas d'autres. Le mieux est d'avoir un système de backup
automatique et régulier, mais alors les backup d'Emacs ne serviraient
plus à rien (sauf comme backup secondaire, mais là encore, tous les
fichiers seraient concernés).

En source control, en principe le commit doit être fait le plus souvent
possible tant que ça ne met pas en doute l'intégrité de la base (genre
ça compile plus). Si dans la pratique ce n'est pas possible (plusieurs
jours de travail sur une nouvelle feature, gros chamboulage...), CVS et
Subversion proposent un système de branches pour ne pas déranger la
racine du projet (voir main-line, trunk, branches, tags).



Je le fais quand il y a vraiment de grosses modif, mais parfois un patch
qui n'a a priori pas besoin d'une branche prend plus de temps que prévu.
Pense aussi au cas d'un travail hors-réseau (de manière exceptionnelle).
Ou une corruption du dépôt Subversion (c'est arrivé à certains).

Je pense que les backup d'Emacs servent surtout dans deux cas: soit à
court terme, soit comme système de backup secondaire. Mais dans les deux
cas, tous les fichiers sont potentiellement concernés.

Donc AMHA, soit Emacs devrait faire un backup de tous les fichiers par
défaut, soit ne faire aucun backup. Ainsi, aucune surprise.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Avatar
Matthieu Moy
Vincent Lefevre <vincent+ writes:

Je ne vois pas ce que tu entends par "auto-destructrice". /tmp peut être
effacé lors d'un reboot, mais au moins avec Linux, c'est optionnel. Et
/var/tmp n'est jamais effacé après un reboot (d'après ce qu'on m'a dit,
c'est *la* différence avec /tmp).



Aussi le fait que /tmp peut-être très petit (typiquement, en tmpfs, la
moitié de ta RAM). Par exemple, un logiciel de gravure qui met son
image iso temporaire dans /tmp, c'est une connerie.

à la main (que ce soit par "svn ci" ou par scp, suivant le cas).


^^^

Remplace-moi vite cet ancêtre par un rsync ;-).

Pense aussi au cas d'un travail hors-réseau (de manière
exceptionnelle).



D'où l'intérêt des systèmes décentralisés (git, hg, bzr, darcs, ...)

Donc AMHA, soit Emacs devrait faire un backup de tous les fichiers par
défaut, soit ne faire aucun backup. Ainsi, aucune surprise.



Je suis aussi de cet avis.

Les fichiers~ sont moins utiles pour les répertoires gérés par un
gestionnaire de version, mais vu ce qu'ils coûtent (combien de Mo sont
occupés par des fichiers textes sur votre disque dur de 100Go ? Moi,
ce qui bouffe de la place, c'est clairement pas les trucs que j'édite
avec Emacs), pourquoi s'en priver ?

--
Matthieu
Avatar
Paul Gaborit
À (at) Fri, 19 Jan 2007 00:17:38 +0000 (UTC),
Vincent Lefevre <vincent+ écrivait (wrote):
Bonjour,

Emacs fait des backups de certains fichiers, et désactive les backups
dans certains cas particuliers: fichiers gérés par système de contrôle
de version (e.g. Subversion) et fichiers qui sont descendants de
certains répertoires (e.g. /tmp, /var/tmp).

Il s'agit du comportement *par défaut*. Trouvez-vous cela normal?



Oui, je trouve cela tout à fait normal et pratique.

Maintenant, vous pouvez trouver cela embêtant dans votre cas. Pour ce
qui concerne les fichiers utilisant un système de contrôle de version,
c'est la variable 'vc-make-backup-files' qui détermine si ils
utilisent le système de backup ou non. Par défaut, la valeur est
'nil'. Si vous la placez à 't', vous aurez vos backups comme vous le
souhaitez.

Pour les fichiers dans /tmp ou /var/tmp, je n'avais constaté le
comportement qui vous décrivez. Mais comme je n'édite jamais de
fichiers dans ces répertoires là...

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Avatar
Vincent Lefevre
Dans l'article ,
Matthieu Moy écrit:

Aussi le fait que /tmp peut-être très petit (typiquement, en tmpfs, la
moitié de ta RAM). Par exemple, un logiciel de gravure qui met son
image iso temporaire dans /tmp, c'est une connerie.



Je ne suis pas d'accord. D'abord le répertoire en question doit être
configurable. Ensuite sur les 4 machines que j'ai devant moi (3 Linux
et 1 Mac OS X), le /tmp est sur un FS local "standard", et il y a
plein de place. Le /tmp me semble être le moins mauvais choix par
défaut pour les fichiers... temporaires. Au moins, on est à peu près
sûr que l'accès n'est pas en NFS; c'est déjà ça. :) Éventuellement,
le logiciel pourrait tester la place disponible.

> à la main (que ce soit par "svn ci" ou par scp, suivant le cas).
^^^

Remplace-moi vite cet ancêtre par un rsync ;-).



Pour scp, je parlais de backups occasionnels. Sinon tous mes fichiers
de travail sont sous Subversion. Donc en pratique, pas besoin de rsync.

> Pense aussi au cas d'un travail hors-réseau (de manière
> exceptionnelle).

D'où l'intérêt des systèmes décentralisés (git, hg, bzr, darcs, ...)



Ils ont aussi leurs inconvénients (gestion des binaires pas aussi bonne
que Subversion, synchronisations à faire à la main et/ou à surveiller,
etc.). Mais en fait, j'utilisais justement les backups d'Emacs comme
pseudo-système décentralisé :), en plus de Subversion comme système
décentralisé). Mais malheureusement, par défaut, ça ne marche pas
comme prévu.

> Donc AMHA, soit Emacs devrait faire un backup de tous les fichiers par
> défaut, soit ne faire aucun backup. Ainsi, aucune surprise.

Je suis aussi de cet avis.

Les fichiers~ sont moins utiles pour les répertoires gérés par un
gestionnaire de version, mais vu ce qu'ils coûtent (combien de Mo sont
occupés par des fichiers textes sur votre disque dur de 100Go ? Moi,
ce qui bouffe de la place, c'est clairement pas les trucs que j'édite
avec Emacs), pourquoi s'en priver ?



Idem ici.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Avatar
Vincent Lefevre
Dans l'article ,
Paul Gaborit écrit:

Oui, je trouve cela tout à fait normal et pratique.



Dans un choix *par défaut* lié à la sauvegarde des données ou à la
sécurité, le côté pratique doit occuper une place secondaire, ce
qui est souvent le cas (e.g. montage de partition en read-only dans
certains cas pour éviter une corruption des données).

Maintenant, vous pouvez trouver cela embêtant dans votre cas. Pour ce
qui concerne les fichiers utilisant un système de contrôle de version,
c'est la variable 'vc-make-backup-files' qui détermine si ils
utilisent le système de backup ou non. Par défaut, la valeur est
'nil'. Si vous la placez à 't', vous aurez vos backups comme vous le
souhaitez.



D'accord, mais je rappelle que le problème est le comportement par
défaut. Tout le monde n'est pas forcément au courant de l'absence de
backups dans des cas particuliers, et c'est cela qui pose problème,
AMHA.

D'ailleurs, quand on fait un C-x C-w sous Emacs et qu'on donne un nom
de fichier déjà existant, Emacs demande toujours confirmation, même
si le fichier en question est géré par Subversion, rendant le C-x C-w
moins pratique. N'y a-t-il pas là un manque de cohérence?

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Avatar
Paul Gaborit
À (at) Fri, 26 Jan 2007 23:59:09 +0000 (UTC),
Vincent Lefevre <vincent+ écrivait (wrote):
[...]
D'accord, mais je rappelle que le problème est le comportement par
défaut. Tout le monde n'est pas forcément au courant de l'absence de
backups dans des cas particuliers, et c'est cela qui pose problème,
AMHA.



Le plus souvent, c'est l'inverse : « C'est quoi ces fichiers *~ qui
polluent mes répertoires ? » ;-)

Sinon, d'accord avec vous pour proposer l'inversion du réglage par
défaut. Personnellement, cela ne me dérangerait absolument pas.

D'ailleurs, quand on fait un C-x C-w sous Emacs et qu'on donne un nom
de fichier déjà existant, Emacs demande toujours confirmation, même
si le fichier en question est géré par Subversion, rendant le C-x C-w
moins pratique. N'y a-t-il pas là un manque de cohérence?



Heu, là, je ne vois pas. La confirmation de l'écrasement du contenu
d'un fichier par un autre me semble tout à fait pertinente quel que
soit le contexte....

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Avatar
Erwan David
Paul Gaborit écrivait :

Sinon, d'accord avec vous pour proposer l'inversion du réglage par
défaut. Personnellement, cela ne me dérangerait absolument pas.



Voir des copies de tous les mails que j'écris s'accumuler
m'ememrderait passablement.

--
Si vous embauchez, voici mon CV
http://www.rail.eu.org/cv/cv.pdf
Avatar
Vincent Lefevre
Dans l'article ,
Paul Gaborit écrit:

Heu, là, je ne vois pas. La confirmation de l'écrasement du contenu
d'un fichier par un autre me semble tout à fait pertinente quel que
soit le contexte....



Si Emacs considère qu'un fichier est récupérable au point qu'un
back-up n'est pas nécessaire, il devrait en être de même lors des
écrasements.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
Avatar
Vincent Lefevre
Dans l'article ,
Erwan David écrit:

Voir des copies de tous les mails que j'écris s'accumuler
m'ememrderait passablement.



Cela resterait configurable. De toute façon, si les fichiers en
question sont stockés dans le home de l'utilisateur, les back-up
sont tout de même créés avec la politique actuelle.

--
Vincent Lefèvre - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
1 2