Je sens la réponse à votre question est oui - les avantages de la gestion de vos fichiers avec un système de contrôle de version emportent de loin sur les coûts de la mise en œuvre d'un tel système.
Je vais essayer de répondre en détail certains des points que vous avez soulevé:
-
Sauvegarde: j'ai une sauvegarde du système déjà en place.
Oui, et moi aussi, Cependant, il y a quelques questions à se poser quant à la pertinence de s'appuyer sur un objectif général de système de sauvegarde d'évaluer adéquatement important et actif fichiers relatifs à votre travail. Du côté de la performance:
- À quelle fréquence est-ce que votre système de sauvegarde de prendre des captures d'écran?
- Combien de temps faut-il pour construire un instantané?
- A-t-elle à l'image de l'ensemble de votre disque dur lors de la prise d'un instantané, ou pourrait-il être facilement dit à juste sauvegarder les deux fichiers qui viens de recevoir les mises à jour critiques?
- Votre système de sauvegarde vous montrer, avec une extrême précision, ce qui a changé dans votre texte des fichiers à partir d'une sauvegarde à l'autre?
Et le plus important:
- Combien d'emplacements sont les sauvegardes enregistrées? Sont-ils dans le même emplacement physique de votre ordinateur?
- Comment est-il facile de restaurer une version donnée d'un fichier unique à partir de votre système de sauvegarde?
Par exemple, avoir un Mac et d'utiliser Time Machine pour la sauvegarde sur un autre disque dur dans mon ordinateur. Time Machine est idéal pour la récupération de l'étrange fichier ou la restauration de mon système, si les choses se faire massacrer. Cependant, il n'a tout simplement pas ce qu'il faut pour être en confiance avec mon travail important:
Lors de la sauvegarde, Time Machine est à l'image de l'ensemble du disque dur qui prend une quantité considérable de temps. Si je continue à travailler, il n'y a aucune garantie que mon dossier sera capturé dans l'état où il était lorsque j'ai entamé le processus de sauvegarde. J'ai aussi peuvent atteindre un autre point que je voudrais enregistrer avant la première sauvegarde est terminée.
Le disque dur où mes sauvegardes Time Machine sont enregistrés est situé dans ma machine, ce qui fait que mes données vulnérables au vol, les incendies et autres catastrophes.
Avec un système de contrôle de version comme Git, je peux lancer une sauvegarde de fichiers spécifiques sans plus d'effort qu'en demandant un enregistrement dans un éditeur de texte et le fichier est numérisés et stockés de manière instantanée. En outre, Git est distribué de sorte que chaque ordinateur que je travaille à la a une copie complète du référentiel.
Cela revient à avoir mon travail en miroir à travers quatre différents ordinateurs - rien de moins qu'une loi de dieu pourrait détruire mes fichiers et des données, à quel point je ne serais probablement pas de soins de trop de toute façon.
-
La fourche et le rembobinage: je n'ai jamais ressenti le besoin de le faire, mais je peux voir comment cela pourrait être utile (par exemple, vous sont en train de préparer plusieurs articles de revue, basée sur le même ensemble de données; de la préparation d'un rapport qui est mis à jour mensuellement, etc)
En tant que soliste, je n'ai pas de fourchette que beaucoup soit. Cependant, le temps que j'ai sauvé en ayant la possibilité de rembobiner a lui seul remboursé mon investissement dans l'apprentissage d'un système de contrôle de version à de nombreuses reprises. Vous dites que vous n'avez jamais ressenti le besoin de le faire - mais a rembobinage aucun fichier dans votre système de sauvegarde vraiment été un indolore, option réalisable?
Parfois, le rapport juste regardé mieux de 45 minutes, une heure ou il y a deux jours.
-
Collaboration: la Plupart du temps, je suis
l'analyse des données moi-même, donc, je
ne pas obtenir la collaboration
les prestations de contrôle de version.
Oui, mais vous apprenez un outil qui peut s'avérer indispensable si vous ne finissent par collaborer avec d'autres personnes sur un projet.
- Le temps de l'évaluer et d'en apprendre un système de contrôle de version
Ne vous inquiétez pas trop à ce sujet. Systèmes de contrôle de Version sont comme des langages de programmation - ils ont quelques concepts clés qui doivent être appris et le reste n'est que du sucre syntaxique. Fondamentalement, le premier système de contrôle de version vous apprendre, il faudra investir le plus de temps de commutation à un autre nécessite juste d'apprendre comment le nouveau système exprime des concepts clés.
Choisir un système populaire et allez-y!
- Une possible augmentation de la complexité sur mon fichier actuel système de gestion de la
Avez-vous un dossier de, dire Projects
qui contient tous les dossiers et les fichiers liés à vos activités d'analyse de données? Si oui, alors gifles de contrôle de version sur il va augmenter la complexité de votre système de fichiers par exactement 0
. Si vos projets sont éparpillés sur votre ordinateur, alors vous devez centraliser avant l'application de contrôle de version et ce sera à la fin la diminution de la complexité de la gestion des fichiers - c'est pourquoi nous avons un Documents
le dossier, après tout.
- Est version le contrôle de la valeur de l'effort?
Oui! Il vous donne un énorme bouton annuler et vous permet de facilement transférer le travail de machine à machine, sans se soucier de choses comme la perte de votre clé USB.
2 Quels sont les principaux avantages et inconvénients de l'adoption de contrôle de version?
La seule con, je pense, une légère augmentation de la taille du fichier, mais la version moderne des systèmes de contrôle peut faire absolument des choses étonnantes avec la compression sélective et sauver ainsi c'est à peu près un point discutable.
3 Ce qui est une bonne stratégie pour prendre en main le contrôle de version pour l'analyse de données avec R (p. ex., exemples, idées de flux de travail, des logiciels, des liens vers des guides)?
Conserver les fichiers qui génèrent des données ou des rapports sous contrôle de version, d'être sélective. Si vous utilisez quelque chose comme Sweave
, stocker vos .Rnw
fichiers et non pas l' .tex
fichiers qui sont produits à partir d'eux. Stocker des données brutes si il serait fastidieux de ré-acquérir. Si possible, d'écrire et d'enregistrer un script qui récupère les données et un autre qui permet de nettoyer ou de le modifier plutôt que de stocker des modifications aux données brutes.
Comme pour l'apprentissage d'un système de contrôle de version, je recommande fortement de Git et de ce guide .
Ces sites ont aussi quelques bons conseils et astuces liés à l'exécution d'actions spécifiques avec Git: