web-dev-qa-db-fra.com

Quel système de contrôle de version utiliser?

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:

  • Je n'ai pas beaucoup d'expérience dans les systèmes de contrôle de version
  • Plusieurs fichiers seront des fichiers de texte brut, mais il y aura aussi des fichiers Libre-Office

L'outil devrait:

  • Être facile à configurer, exécuter et entretenir
  • 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.)
  • Idéalement, avoir une interface graphique également
  • Être capable de récupérer des fichiers supprimés

Quel est le meilleur outil/le plus largement utilisé qui me convienne?

5
deshmukh

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 statusgit 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.

8
mmorris

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.

Déjà Dup

Utilise duplicity comme serveur principal.

Pros

  • Solution de sauvegarde propre à Ubuntus
  • Très facile
  • Nombreuses options pour savoir où vous voulez que les sauvegardes aillent

Inconvénients

  • Plus d'une solution de sauvegarde, pas de contrôle de version
  • Contrôle quelque peu limité

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.

SpiderOak

Pros

  • Paquets Ubuntu disponibles, ajoute un référentiel à sources.list (mises à jour automatiques)
  • Vous pouvez sélectionner n'importe quel dossier à sauvegarder (contrairement à Dropbox)
  • Fonctionne en arrière-plan, surveille les modifications dans ces dossiers et ne télécharge que les modifications (enregistre la bande passante), ceci est automatique et immédiat
  • Chiffrement côté client (contrairement à Dropbox)
  • Reconnaît les doublons
  • Compresse les fichiers sur le serveur
  • Conserve les fichiers supprimés et les versions antérieures sur son serveur (tant que vous disposez d'un espace de stockage libre), sauf si vous les supprimez explicitement
  • Nice GUI
  • Possibilité de synchronisation entre ordinateurs (Linux/Windows/OS X, clients mobiles en lecture seule)
  • Basé sur le cloud - même si votre disque dur s'est écrasé, vous avez toujours une sauvegarde

Inconvénients

  • Basé sur le cloud - connexion Internet requise
  • Pas complètement open source
  • Seulement 2 Go (prise sans scrupule: si vous voulez un Go supplémentaire, vous pouvez utiliser my lien référent)

Téléchargez-le ici: Télécharger SpiderOak

rdiff-backup

Pros

  • Sauvegarde locale ou à distance possible
  • Contrôle à grain fin
  • Algorithme rsync, ne suit que les modifications
  • Gain de place (les fichiers non modifiés ne sont pas modifiés)
  • Les permissions de fichiers peuvent aussi être stockées
  • Peut conserver les n dernières versions ou les n derniers jours de vos sauvegardes

Inconvénients

  • Doit être géré par un cronjob ou explicitement
  • Utilitaire de ligne de commande (si ce n'est pas votre truc), mais une interface graphique est disponible: Pybackpack

Installez-le via:

Sudo apt-get install rdiff-backup pybackpack

Instantanés BTRFS

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

  • Très efficace en termes d'espace, seuls les fichiers modifiés sont à nouveau stockés
  • Garde la trace de toutes les données de la partition
  • Vite
  • Montez n'importe quel instantané plus ancien pour accéder aux versions précédentes

Contre

  • BTRFS est encore relativement nouveau
  • Pas nouveau pour les débutants
  • Ligne de commande uniquement
  • Nécessite un peu de bricolage avec le système
  • Pas une solution de sauvegarde - si votre disque dur tombe en panne, toutes les versions sont perdues

Il y a un howto sur pages d'aide sur Ubuntus .

6
phoibos

Je recommanderais git parce que:

  1. C'est facile à utiliser
  2. Vous pouvez l'héberger sur github gratuitement
  3. Pour les fenêtres, vous pouvez utiliser github pour windows qui vous donne un gui.
  4. C'est rapide
  5. Syntaxe indiquant si vous en avez besoin sur le site Web de github.
  6. Vous pouvez l'exécuter localement, ce qui en fait l'outil idéal pour vos projets personnels.
2
orangeocelot

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

2
Nanne

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.

2
coteyr

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.

enter image description here

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.

2
user76204

Vous pouvez utiliser Codebase .

  1. C’est un outil de gestion de projet logiciel avec un hébergement rapide, fiable et sécurisé pour l’hébergement Git, Mercurial et Subversion.
  2. Il peut suivre tout le projet sur le Web et déployer des référentiels directement sur les serveurs.
  3. Il dispose de puissantes fonctionnalités de gestion de projet avec une gestion de tickets avancée, des flux d'activité et un contrôle des données avec des autorisations personnalisables, une fonctionnalité de recherche complète et une API de développement.
1
frisky

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:

http://en.wikipedia.org/wiki/Revision_Control

0
user171154