Je cherche à utiliser un système de contrôle de version pour pouvoir revenir en arrière dans le temps à une version particulière de tous les documents de ~, si nécessaire.
Quel est l'outil le mieux adapté à cette situation, étant donné que:
L'outil devrait:
Quel est le meilleur outil/le plus largement utilisé qui me convienne?
J'ai utilisé CVS , Subversion , git , et quelques packages commerciaux. Je viens de migrer mon VCS personnel de CVS vers git (je pensais que ce serait plus difficile que ce que c'était en réalité, j'aurais dû le faire il y a longtemps).
Je recommanderais git. Basé sur ce que vous recherchez.
Je suis un noob sans grande expérience des systèmes de contrôle de version
git peut avoir une courbe d'apprentissage plus longue, surtout si vous avez de l'expérience avec un VCS précédent. Sans avoir été exposé à un VCS précédent, votre courbe d'apprentissage peut être plus courte.
La meilleure façon d'apprendre à git est de télécharger le livre Pro Git de Scott Chacon (gratuitement), de créer un référentiel de test (mkdir <project name>; cd <project name>; git init
) et de le pirater. Il n'y a vraiment aucun effort pour créer un référentiel et ne craignez pas de foutre quelque chose dans un référentiel de test, car chaque référentiel est indépendant. Un référentiel peut être facilement supprimé (cd <project name>; rm -rf .git
).
Plusieurs fichiers seront des fichiers de texte brut, mais il y aura des fichiers Libre-Office
Il n'y a pas de différenciation avec les types de fichiers git sur (ASCII vs binaires), cependant les fichiers ASCII sont optimaux pour voir les conflits et les conflits de fusion.
Être facile à configurer, exécuter et entretenir
git peut être configuré de différentes manières, tout dépend de vos besoins. Pour commencer, il suffit d’installer git (Sudo apt-get install --install-recommends git-core
) et de créer un référentiel (illustré ci-dessus). Si vous travaillez sur plusieurs machines, vous pouvez configurer git over ssh (c'est dans le livre). Mieux encore, à mesure que vos besoins augmentent, vous ne perdez pas ce que vous avez déjà fait.
Ayez des options de configuration faciles à comprendre (quels répertoires suivre, pendant combien de temps, à quelle fréquence les modifications doivent être capturées, etc.)
Vous pouvez avoir un grand référentiel ou les scinder en projets individuels ou en fichiers simples. Encore une fois, créez un référentiel git et jouez avec ce dernier, voyez ce qui fonctionne et ce qui ne fonctionne pas.
Idéalement, avoir une interface graphique également
Il existe de nombreux git guis spécialisés dans de nombreuses tâches différentes. Cependant, apprendre git à partir de la ligne de commande est fortement recommandé. Pour commencer, il vous suffit d'apprendre quelques commandes (git init
, git status
git diff
, git add
, git rm
, git commit
, git Push
, git pull
). La ligne de commande vous aide également dans les tâches que vous devez effectuer. Par exemple: git status
# On branch master
# Your branch is ahead of 'Origin/master' by 2 commits.
#
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: systems/ion/setup.txt
# modified: systems/dogstar/teardown.txt
# modified: applications/help.html
# modified: applications/readme.txt
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# applications/faq.html
no changes added to commit (use "git add" and/or "git commit -a")
Si vous êtes plus à l'aise avec une interface graphique, SmartGit est adapté aux débutants.
Être capable de récupérer des fichiers supprimés
Oui, git peut récupérer n’importe quelle version d’un fichier tant qu’il a été validé.
Quel est le meilleur outil/le plus largement utilisé qui me convienne?
git est largement utilisé. En ce qui concerne les meilleurs, il est parmi les meilleurs, sinon les meilleurs. Mais être le meilleur, c'est plus une opinion personnelle et c'est aussi basé sur la situation.
En utilisant un contrôle de version tel que git
, Mercurial hg
, bzr
ou svn
, vos propos ne sont pas parfaitement adaptés à vos besoins, car ils sont principalement ciblés. pour les fichiers sources, pas les données binaires. Ainsi, je veux ajouter quelques possibilités supplémentaires ici.
Je pense qu'une solution intéressante serait un service de sauvegarde basé sur le cloud. Personnellement, j'utilise SpiderOak , qui fonctionne vraiment bien.
Utilise duplicity
comme serveur principal.
Pros
Inconvénients
Si ce n'est pas déjà fait, installez-le:
Sudo apt-get install deja-dup
Vous pouvez le trouver en tiret si vous entrez backup
.
Pros
sources.list
(mises à jour automatiques)Inconvénients
Téléchargez-le ici: Télécharger SpiderOak
Pros
rsync
, ne suit que les modificationsInconvénients
Installez-le via:
Sudo apt-get install rdiff-backup pybackpack
Bien que cela ne soit pas pour les âmes sensibles, il est possible d’avoir votre répertoire /home
sur une partition BTRFS séparée et de créer des instantanés de celui-ci de temps en temps.
Pros
Contre
Il y a un howto sur pages d'aide sur Ubuntus .
Je recommanderais git parce que:
Les systèmes de contrôle de version bien connus sont CVS, SVN (Subversion) et GIT. Il n'y a pas besoin de penser à votre ancien CVS, cela nous laisse donc SVN et GIT.
Pour votre utilisation limitée, je ne pense pas que le choix de votre choix compte vraiment, alors je vous conseillerais de voir qui vous connaissez qui en utilise un et de choisir celui qui vous convient :)
Si vous recherchez une facilité d'utilisation pour les tâches plus complexes (contrôle de version réel pour le code, etc.), je vous suggérerais d'utiliser GIT. Fondamentalement, "eux" disent que SVN était une mise à jour pour CVS, et GIT est à nouveau une "mise à jour" de SVN. Personnellement, je pense que les avantages de GIT par rapport à SVN s’appliquent spécifiquement à plusieurs utilisateurs et à plusieurs succursales, alors vous n’êtes peut-être pas vraiment inquiet.
D'autre part, pourquoi ne pas avoir une expérience avec la meilleure option disponible, vous ne savez jamais ce que vous voulez faire à l'avenir.
S'il vous plaît consulter certaines informations sur eux
Je ne pense pas que tu veuilles faire ça. Le contrôle de source est juste pour ça, le contrôle de source. La plupart ne gèrent pas très bien les fichiers binaires (images, musique, films, etc.).
De plus, les GDS vous donneront une ligne par ligne des données modifiées. Ainsi, chaque fois que vous vous connecterez ou vous déconnecterez, vous modifierez certaines données. Vous devrez "fusionner" ou "commettre" tout le temps. Je suis presque certain que ce n'est pas ce que vous voulez.
Cependant, il existe quelques très bons outils.
Back-In-Time est génial, et a un visualiseur de diff. Deja Dupe est la valeur par défaut, mais je ne pense pas que ce soit très riche en fonctionnalités. grsync peut vous donner une liste de fichiers ayant été modifiés par rapport à une sauvegarde. et plaine vieux rsync est une option.
Si vous insistez pour utiliser un SCM, je vous recommande git, mais hébergé localement. Ajoutez un .gitignore qui exclut tous les fichiers binaires. Mieux encore, vous pouvez essayer simplement de contrôler vos répertoires de configuration. Encore une fois, vous devrez faire attention aux fichiers binaires.
En relisant votre question, je pense que ce que vous voulez, c'est un référentiel local créé avec un outil tel que svn
, et maintenu avec son interface , rapidsvn
. Cela semblerait convenir particulièrement bien à votre objectif: le référentiel local pourrait se trouver sur votre disque dur principal ou sur un lecteur externe. Il est important de noter que le contrôle de version est mieux adapté au code source, aux fichiers texte ou aux documents et ne convient pas aux fichiers multimédia. Dropbox
ou Ubuntu One
serait préférable pour ce type de sauvegarde. De plus, vous pouvez revenir aux versions précédentes des fichiers avec dropbox
.
Quoi qu'il en soit, je montrerai brièvement comment l'outil graphique rapidsvn
fonctionne et comment svn
est utilisé à partir de la ligne de commande.
Tout d’abord, installez les fichiers nécessaires avec
Sudo apt-get install Subversion rapidsvn
Plus d'informations sont disponibles sur le site officiel pour rapidsvn
, bien qu'il soit important de noter que vous devez toujours créez d'abord votre référentiel svn avec la ligne de commande. Assurez-vous d’être au premier niveau de votre dossier de départ (entrez cd
pour y accéder si nécessaire) et entrez:
svnadmin create --fs-type fsfs ~/svn
Créez ensuite un dossier initial avec
svn mkdir file:///home/mike/svn/folder -m "initial folder"
En utilisant le guide de démarrage rapide , nous pouvons charger rapidsvn
, cliquer avec le bouton droit de la souris sur les signets et ajouter votre référentiel en cliquant sur Commander une nouvelle copie de travail , puis à partir de vous pouvez manipuler vos fichiers à votre guise avec des extractions, des importations et des validations.
Je pense que c’est probablement l’interface graphique que vous recherchiez, car il permet de gérer facilement tous vos fichiers et il est plus facile de configurer les options que d’utiliser svn
sur la ligne de commande.
Vous pouvez utiliser Codebase .
GNU RCS (Système de contrôle de révision) gère plusieurs révisions de fichiers. RCS peut stocker, récupérer, consigner, identifier et fusionner les révisions. Il est utile pour les fichiers fréquemment révisés, par exemple. programmes, documentation, graphiques et papiers. Il peut gérer du texte aussi bien que des fichiers binaires, bien que la fonctionnalité soit réduite pour ces derniers.
L'interface utilisateur de base est extrêmement simple. Le novice n'a besoin d'apprendre que deux commandes: ci et co. ci, abréviation de checkin, dépose le contenu d'un fichier dans un fichier d'archivage appelé fichier RCS. Un fichier RCS contient toutes les révisions d'un fichier particulier. co est l'abréviation de checkout.
Besoin de diff vos changements? rcsdiff.
Page du projet: http://savannah.gnu.org/projects/rcs/
Manuel: http://www.gnu.org/software/rcs/manual/rcs.html
J'ai "besoin d'au moins 10 points de réputation pour pouvoir publier plus de 2 liens". Le lecteur devra donc modifier les éléments suivants pour pouvoir accéder au lien. Écriture de l'auteur que vous voudrez peut-être lire éventuellement:
http://www.gnu.org/software/rcs/tichy-paper.pdf
Un résumé de Nice et la génologie de divers logiciels de système de contrôle de révision disponibles: