Est-il possible d'avoir plus d'une sauvegarde lors de l'édition de files text?

Gedit et medit sont deux éditeurs de text que je connais et qui me permettent de sauvegarder une sauvegarde. Donc, si je crée un file appelé temp.txt la prochaine fois que je le modifierai, puis le sauvegarderai, j'aurai une sauvegarde appelée temp.txt~ .

Ma question est la suivante: existe-t-il un éditeur de text qui me permet d'avoir des sauvegardes nommées en série afin que je puisse avoir plus qu'une seule sauvegarde au cas où je voudrais revenir au file tel qu'il existait quelques révisions il y a quelques années? Par exemple, j'aurais temp.txt comme la dernière version et temp.bak.1 , temp.bak.2 , etc.?

Si ce n'est pas possible, y a-t-il un script qui renommera automatiquement une sauvegarde chaque fois qu'il sera créé afin de conserver les versions en série? Même un temp.timestamp.txt serait génial.

(Ça ne me dérange pas une solution en utilisant nano comme éditeur de text.)


Je devrais préciser que je ne suis pas un codeur ou un programmeur. Je veux juste avoir des versions précédentes de files text que je modifie. Ces files text peuvent être des files .css ou .rc ou .svg qui font partie d'un thème. Donc, si je modifie un aspect du file d'un thème, je peux revenir un peu au cas où je ne voudrais pas un changement que j'ai fait.

Il existe un moyen simple d'utiliser mercurial pour le contrôle de version. Premièrement, installez-le.

Pour configurer mercurial, créez un file ~/.hgrc avec le contenu suivant:

 [ui] username = Your name <your mail> verbose = True 

Si vous utilisez des servers mercuriels, vous pouvez append plus d'informations à ce file (lisez man hgrc ).

Après ce cd au directory avec vos files text. Par exemple:

 > cd /tmp > mkdir data && cd data > cat > text_file.txt Hello, this is a file. 

Vous pouvez append aussi n'importe quel nombre de files. Après nous devons commencer mercurial:

 > hg init 

Par défaut, il n'y a pas encore de files, donc il faut dire mercurial, que l'on veut inclure tout:

 > hg st ? text_file.txt > hg add adding text_file.txt > hg st A text_file.txt 

Maintenant nous faisons faire simple commit:

 > hg comm -m 'first run' text_file.txt committed changeset 0:87e90c949984 

Maintenant, faites quelques corrections et voyez la différence:

 > cat >> text_file.txt Add one line. > hg diff diff -r 87e90c949984 text_file.txt --- a/text_file.txt Mon Apr 01 12:52:14 2013 +0400 +++ b/text_file.txt Mon Apr 01 12:53:47 2013 +0400 @@ -1,1 +1,2 @@ Hello, this is a file. +Add one line. 

Maintenant, faites un autre commit, après avoir regardé hg log : vous verrez les deux commit.

Pour revenir à la première validation, il suffit de le faire:

 > hg upd -r 0:87e90c949984 resolving manifests getting text_file.txt 1 files updated, 0 files merged, 0 files removed, 0 files unresolved > cat text_file.txt Hello, this is a file. 

Vous voyez: un file est vieux.

Maintenant, restaurez le dernier file:

 > hg upd resolving manifests getting text_file.txt 1 files updated, 0 files merged, 0 files removed, 0 files unresolved > cat text_file.txt Hello, this is a file. Add one line. 

Vous pouvez également faire un script simple:

 #!/bin/bash while true; do hg commit -m "commit: $(date)" sleep 60 done 

Exécutez-le lorsque vous commencez à éditer votre file, et il vérifiera les changements chaque minute, s'il y a eu des changements, Mercurial fera une nouvelle validation. De plus, comme je l'ai mentionné dans les commentaires, vous pouvez utiliser at ou cron pour les autocommits.

J'appuie la recommandation d'utiliser le contrôle de version . Il est beaucoup plus flexible et plus fiable que de conserver des files de sauvegarde, et il est facile à configurer.

Néanless, si vous souhaitez un contrôle précis sur les files de sauvegarde (et bien d'autres choses), vous pouvez utiliser Emacs. Définissez la variable de version-control sur t pour effectuer des sauvegardes numérotées et non pas simplement conserver un file de sauvegarde par session (put (setq version-control t) dans vos ~/.emacs ). Appuyez sur Cu Cx Cs au lieu de simplement Cx Cs lorsque vous souhaitez créer une nouvelle sauvegarde.

Une autre approche consiste à utiliser un système de files qui effectue les sauvegardes pour vous, que l'application connaisse ou non les sauvegardes. CopyFS crée un tel système de files par-dessus n'importe quelle arborescence de directorys.

On dirait qu'il y a un plugin doubleClick pour gedit. Bien qu'il utilise un horodatage au lieu d'un nombre incrémenté.

Geany est livré avec un plugin approprié. J'utilise Geany 1.23.1 sur Lubuntu 13.10. En cliquant sur devises , Plugin Manager affiche ceci:

Boîte de dialogue Plugin Manager

Ici, vous pouvez cocher Save Actions , puis, dans Modifier , Preferences du plugin , vous pouvez configurer la sauvegarde des sauvegardes:

Enregistrer le dialogue Actions

Un peu en retard à la fête ici, mais vous pouvez réaliser une fonctionnalité de sauvegarde unique en nano (au less dans la version actuelle Debian 2.2.6) en utilisant les indicateurs -B et -C .

De la page de manuel de Debian:

  -B (--backup) When saving a file, back up the previous version of it to the current filename suffixed with a ~. -C dir (--backupdir=dir) Set the directory where nano puts unique backup files if file backups are enabled. 

Pour créer cette valeur par défaut, créez un alias bash pour nano, y compris les flags, et mettez-le le cas échéant (en ajoutant la ligne ci-dessous à /home/username/.bash_aliases fonctionne pour moi):

 alias nano='nano -BC /home/username/.nano_backups' 

Ce qui produira des sauvegardes dans le directory spécifié comme:

 $ ls /home/username/.nano_backups !home!username!.bash_aliases~ !home!username!.bash_aliases~.1 !home!username!.bash_aliases~.10 !home!username!.bash_aliases~.11 !home!username!.bash_aliases~.12 [...] 

Avec vv, vous pouvez avoir jusqu'à 100 files de sauvegarde. vv est un outil addon pour n'importe quel éditeur et peut sauvegarder, récupérer, listr, etc. des sauvegardes cachées, complètement automatiques.

Voir http://fex.belwue.de/fstools/vv.html