Time Machine vs Source Control?

18

J'ai finalement été convaincu de commencer à utiliser une sorte de contrôle de version pour mon code au lieu de compresser une copie du projet à la fin de chaque journée.

Téléchargé Tortoise SVN et utilisé pour créer un référentiel localement sur mon disque dur. Je l'utilise depuis 2 jours maintenant, mais je dois dire que son utilisation est en fait plus compliquée que la simple copie manuelle du projet dans l'explorateur. Bien sûr, vous ne stockez que des modifications incrémentielles, mais avec les disques bon marché d'aujourd'hui, je ne peux pas vraiment dire que c'est un argument lorsque vous n'avez que de petits projets. Je n'ai pas vraiment trouvé de moyen rapide de parcourir les anciennes versions de mes fichiers.

Ce que je veux, c'est une annulation infinie qui est complètement transparente pendant que je code, si je sauvegarde le fichier, je veux une sauvegarde. Je ne veux pas vérifier, enregistrer et ne me lance même pas sur le déplacement de fichiers. Je n'ai pas essayé Time Machine pour OS X mais il semble que c'est exactement ce que je recherche.

Un tel programme existe-t-il pour Windows? De préférence gratuit et avec une sorte de système de marquage afin que je puisse marquer un horodatage lorsque le projet fonctionne, etc.

Je devrais peut-être ajouter que je travaille principalement seul sur un seul ordinateur.

Mise à jour: certains d'entre vous ont demandé pourquoi je souhaitais une sauvegarde. Étant donné que je travaille seul, c'est surtout pour me permettre de pirater rapidement une solution sans craindre que quelque chose ne se passe.

Blub
la source
4
La principale différence entre SCM et Time Machine est qu'avec SCM vous vous engagez explicitement et vous pouvez récupérer toutes vos validations alors qu'avec les sauvegardes Time Machine sont automatiques (toutes les heures) et certaines se perdent avec le temps: une seule sauvegarde par semaine est conservée pour toujours (et vous ne choisissez pas lequel).
mouviciel
2
Je pense qu'un commit automatique sur chaque build qui se termine sans erreurs, plus une étiquette chaque fois que les tests unitaires passent pourrait être bon sur une branche locale pour beaucoup de programmeurs
Ian Ringrose
1
Le problème avec tout contrôle de version, c'est que si vous êtes le seul développeur sur un projet, il est très difficile d'arrêter les fichiers que vous n'avez pas ajoutés au système de contrôle de version. Avoir un serveur de build séparé fonctionne, mais c'est beaucoup plus à configurer. La sauvegarde de TOUS les fichiers peut être plus sûre.
Ian Ringrose

Réponses:

39

Je pense que vous sous-estimez vraiment les avantages du contrôle des sources. Comme l'a souligné Dustin, il y a la ramification, la fusion et le partage. De plus, l'utilisation d'un système de contrôle de source peut vous permettre de déterminer facilement quand chaque ligne de votre code a été modifiée pour la dernière fois. SVN peut également suivre l'historique des fichiers même s'ils sont renommés ou déplacés vers un répertoire différent. La fusion peut même résoudre des problèmes même si vous n'êtes qu'un seul développeur, car vous pouvez travailler sur votre ordinateur de bureau, votre ordinateur portable et d'autres ordinateurs sans avoir à vous soucier de remplacer les modifications.

Kibbee
la source
Le besoin de Jeff (et le mien) n'est pas satisfait par le contrôle de code source car cela nécessite des validations manuelles. Il est utile de pouvoir retracer les modifications minute par minute que vous avez apportées à votre copie de travail sans avoir à les valider toutes les minutes. Et sans polluer le référentiel. Certains IDE (comme Eclipse) vous permettent de parcourir vos fichiers de projet dans le temps. Mais cela nécessite l'utilisation d'un IDE particulier et la mise en place d'un projet. Ce serait bien s'il y avait des fonctionnalités similaires dans un outil indépendant.
Vimes
@JohnB SVN a une fonctionnalité appelée "Autoversioning". Il vous permet de monter votre référentiel en tant que dossier WebDAV standard, et chaque fois que vous enregistrez le fichier, il effectuera une validation. Si vous enregistrez assez souvent, vous pouvez remonter dans le temps à tout moment où vous avez enregistré le fichier. Ce n'est pas aussi granulaire que quelque chose comme VS.Net où vous pouvez Ctrl + Z chaque caractère mais vous devriez quand même enregistrer toutes les 10 minutes. Si vous étiez un seul développeur travaillant sur un projet, cela fonctionnerait probablement, même si je n'ai pas beaucoup d'expérience avec lui. ( svnbook.red-bean.com/en/1.7/svn.webdav.autoversioning.html )
Kibbee
Merci, Kibbee. J'ai vu le post de VonC à ce sujet, ci-dessous. C'est l'une des rares options que j'ai vues et la seule gratuite. Il y a aussi quelques produits dédiés ci-dessous, qui ne nécessitent pas de configurer un serveur de contrôle de source, ce qui est bien. Mais ils coûtent de l'argent et semblent avoir plus de cloches et de sifflets que je n'en ai besoin (ou l'un d'entre eux a besoin d'un travail d'interface utilisateur). La chose la plus proche que j'ai vue de ce que je veux est DropBox, avec son intégration au menu contextuel de l'Explorateur Windows. Il enregistre 30 jours d'historique par défaut, et si vous payez pour la fonctionnalité Pack Rat, il vous fera économiser indéfiniment. Mais c'est une application cloud.
Vimes
21

Ce serait la version automatique (pour rester avec Subversion):

La version automatique est une fonctionnalité grâce à laquelle les clients WebDAV génériques peuvent écrire sur un serveur DeltaV (comme mod_dav_svn), et le serveur effectue des validations silencieuses en arrière-plan. Cela signifie que si vous utilisez Apache httpd comme serveur Subversion, la plupart des systèmes d'exploitation modernes peuvent monter le référentiel en tant que partage réseau et les utilisateurs non techniques obtiennent gratuitement une version "transparente". (Bien sûr, les utilisateurs techniques peuvent toujours utiliser les clients Subversion pour examiner l'historique du référentiel.)

VonC
la source
2
Certainement une bonne réponse et une solution similaire à ce que veut l'OP, des sauvegardes régulières sans commit explicite.
12

Ne confondez pas les solutions de sauvegarde avec le contrôle de version. Ils sont tous deux importants mais ont des objectifs différents. Ce que vous devriez vraiment faire, c'est utiliser le contrôle de version (svn, cvs, mercurial, git, peu importe) et le sauvegarder automatiquement ailleurs que sur votre disque dur, de préférence hors site (hôte payant ou S3). Ou allez à 100% à distance et trouvez quelqu'un pour héberger votre dépôt SVN. Je suggérerais de ne pas tromper . Vous pouvez y installer un repo SVN gratuit sans trop de problèmes.

Mordez la balle et utilisez SVN. Ce n'est peut-être pas aussi simple que ce à quoi vous êtes habitué, mais lorsque vous devez effectuer une restauration très spécifique ou comparer les modifications entre les fichiers, vous serez content de l'avoir fait.

Michée
la source
6

Consultez FileHamster @ http://www.mogware.com/FileHamster/ . Il sauvegarde automatiquement vos fichiers en tant que révisions chaque fois qu'ils changent.

Lukman
la source
6

Divulgation complète: je travaille pour Altaro Software.

Si vous voulez une Time Machine pour Windows, lancez-vous sur le "Oups! Sauvegarde de la liste BETA

Nous sommes une nouvelle société de logiciels Altaro Software et nous développons un produit de sauvegarde de logiciel / produit de contrôle de version appelé «Oups! Sauvegarde '. Oups! La sauvegarde est un hybride entre un produit de sauvegarde traditionnel et un système de contrôle de version léger. Oups! La sauvegarde suit automatiquement les modifications apportées aux documents, photos et autres fichiers et vous permet de revenir en arrière à tout moment. Dans une certaine mesure, c'est l'équivalent de Time Machine pour Windows.

Veuillez noter que j'ai dit le contrôle de version léger - ce n'est pas un produit destiné à remplacer un produit de contrôle de version approprié. Nos développeurs utilisent SVN et Oups! Sauvegarde en même temps. Ils utilisent VSN pour un contrôle de version approprié avec des fonctionnalités de check-in / out mais ils utilisent également Oops! Sauvegarde pour les moments Oops qu'ils obtiennent parfois et ont besoin de trouver rapidement une version de fichier précédente sans avoir à passer par un processus de paiement complet.

Nous avons beaucoup investi dans l'expérience utilisateur ET les bonbons pour les yeux - car nous comprenons que le eyecandy n'implique PAS une expérience utilisateur.

Nous allons bientôt entrer dans la version BETA et recherchons des testeurs BETA - toute personne désireuse de l'essayer, consultez http://www.altaro.com/download.php . Sur cette page, vous pouvez également voir des captures d'écran du produit.

Vos opinions et critiques constructives seraient grandement appréciées (j'adorerais entendre les mauvaises choses ... plus que les bonnes choses)

Comme je l'ai dit plus tôt - Oups! La sauvegarde ne remplace pas la nécessité d'un produit de contrôle de version approprié, mais elle le complète. Il peut être utilisé comme moyen de contrôle de version, mais vous n'aurez pas d'archivage / retrait et la création de branches devrait être effectuée manuellement en créant un nouveau dossier.

Désolé pour la prise !!

David Vella - [email protected]

David Vella
la source
Je pense que la liste des fonctionnalités est un très bon début. Prend-il en charge une restauration complète (comme en cas de panne matérielle; une exigence pour une Time Machine pour Windows, si vous me demandez)? Et, même si peu de gens s'en soucient: peut-il gérer plusieurs disques de sauvegarde (redondants)? Ou, sinon, un moyen de copier la sauvegarde complète (comme Time Capsule, mais qui prend beaucoup de temps)? Pour les prochaines versions: je recommanderais des plugins pour les logiciels populaires qui nécessitent une utilisation spécifique du système de fichiers. Comme pour les programmes de messagerie: pour rechercher et restaurer des messages sans savoir comment ils se trouvent sur le système de fichiers. Et: localisation?
Arjan
Salut Arjan - non, il ne prend pas en charge l'imagerie de disque (ala Acronis & Ghost) et pour être honnête, je ne sais pas si nous devons procéder de cette façon - nous le verrons en fonction des commentaires. Il existe déjà de bons produits que vous pouvez utiliser pour le métal nu, nous n'irons donc pas sur ce marché maintenant et nous concentrerons sur la fabrication de Oops! Sauvegardez la meilleure solution ponctuelle du marché. Au lieu de cela, nous nous concentrons sur la partie de contrôle de version - sur le contenu réel par opposition à la couche de bits. À ce jour, nous avons des aperçus «sensibles aux applications», car nous prenons en charge la prévisualisation des fichiers MS Office, des images, des fichiers texte, etc. - nous continuerons à l'ajouter.
David Vella
J'ai dit dans une certaine mesure que c'est l'équivalent de Time Machine. D'après ce que j'ai entendu, le plus proche d'Apple Time Machine est Rebit - je ne l'ai jamais testé moi-même. Anglais uniquement pour l'instant - mais nous sommes prêts à commencer la localisation. Si vous voulez l'essayer en BETA envoyez-moi un email :) David Vella de Malte (Europe) [email protected]
David Vella
Après avoir parcouru quelques commentaires laissés par "Candice" de Genie aka "Salam": +1 pour votre divulgation ;-) ( superuser.com/questions/7423/time-machine-for-windows/… / stackoverflow.com/questions/274948 / time-machine-for-windows /… / serverfault.com/questions/1918/… )
Arjan
4

Une solution qui ressemble beaucoup à Time Machine a été présentée il y a quelque temps dans le magazine allemand c't. Bien que l'article lui-même soit disponible pour 60 cents, les scripts eux-mêmes sont gratuits: http://www.heise.de/ct/ftp/06/09/126/

Fondamentalement, il utilise rsync pour sauvegarder vos données sur un lecteur formaté NTFS externe. À chaque nouvelle sauvegarde, il ne stocke que de nouveaux fichiers sur le disque de sauvegarde, mais crée des liens physiques vers tout le reste. En effet, vous verrez une structure de dossiers complète pour chaque sauvegarde, mais n'utilisez que l'espace nécessaire pour la première sauvegarde complète + toutes les modifications ultérieures.

Ce n'est pas aussi sophistiqué que Time Machine, mais c'est la même technologie (Time Machine utilise également rsync, pour autant que je sache) sous les couvertures.

Daniel Schneller
la source
2

Time Machine est une solution de sauvegarde / restauration quelque peu ordinaire. Utilisez n'importe quel outil de sauvegarde Windows avec des sauvegardes incrémentielles quotidiennes automatisées et vous avez à peu près la même chose. Cependant, même s'il est possible de restaurer les états précédents (quotidiens), ce n'est peut-être pas la solution la plus rapide.

TheMarko
la source
2

SVN n'est pas très efficace pour les développeurs solo. Découvrez BZR . J'utilise BZR pour tous mes projets personnels et mon répertoire personnel, j'utilise SVN uniquement pour le gros projet.

Dustin Getz
la source
Intéressant. L'utilisez-vous avec un serveur, même localhost, ou cela fonctionnera-t-il uniquement avec un système de fichiers local?
PhiLho
1
"SVN n'est pas très efficace pour les développeurs solo". C'est une jolie déclaration générale, vous ne pensez pas?
mwjackson
1
Jacko, renseignez-vous sur les alternatives et vous seriez d'accord.
Dustin Getz
1
phil, il y a toujours une copie locale du référentiel pour rendre tout rapide et éviter les problèmes d'autorisations, mais pousse / synchronise éventuellement à distance n'importe quoi (partage, site Web, ftp, probablement plus) si / quand vous devez travailler avec une équipe. lire le site Internet.
Dustin Getz
La principale différence entre BZR et SVN semble être que BZR est distribué. Étant donné que l'OP fonctionne principalement seul sur un seul ordinateur, je ne suis pas convaincu que les avantages d'un contrôle de source distribué dépasseraient la complexité supplémentaire dans ce cas.
redtuna
2

Genie Timeline 2.0 est sorti la semaine dernière.

Je sais, je sais, "encore une autre prise de chronologie!" ... mais ce n'est pas.

La chronologie 2.0 a été complètement réécrite et, jusqu'à présent, le consensus général sur le Web a été très positif.

Mieux encore, presque toutes les fonctionnalités sont disponibles dans une nouvelle édition gratuite de Genie Timeline.

Spécifications de Genie Timeline 2.0 Free: http://www.genie-soft.com/Free_products/free_timeline.aspx

Téléchargement: http://download.cnet.com/Genie-Timeline-Free/3000-2242_4-10967059.html?tag=mncol

Les versions payantes du produit ajoutent le chiffrement, la compression et la purge automatique des anciennes sauvegardes.

DIVULGATION: J'étais chef de projet sur la version 2.0

Mahmoud Al-Qudsi
la source
+1 pour la divulgation. Voir aussi Time Machine pour Windows qui, je pense, est un meilleur endroit pour continuer cette question.
Arjan
1

Que voulez-vous que le contrôle de code source / les sauvegardes multiples fassent?

Il y a deux raisons pour le contrôle du code source à mon avis - la gestion de la configuration et la protection contre les problèmes / la stupidité des doigts des développeurs (ce que je constate). Si ce dernier est le problème, les suggestions ci-dessous (ou FileHamster comme recommandé dans une autre réponse) feront le travail.

Si comme Dustin Getz le suggère, il s'agit de la gestion de la configuration, des branches, etc., alors les recommandations du programme de contrôle de code source ou SVN sont meilleures que mes suggestions.

Donc, pas utilisé et pas gratuit (32 $), mais googler est apparu

TrackMyFiles - http://www.trackmyfiles.com/en/features/

  • Suit et stocke automatiquement les modifications apportées aux fichiers
  • Vous permet de visualiser et de restaurer les anciennes versions de fichiers
  • Les versions de fichiers importantes peuvent être étiquetées explicitement
  • Compatible avec la plupart des types de fichiers, tels que les documents Microsoft Word® et les présentations Microsoft Powerpoint®
  • Stockage efficace des modifications grâce à l'algorithme de compression delta
  • Intégré à Microsoft Windows® File Explorer pour un fonctionnement transparent

Version d'essai de 60 jours disponible, selon ce site Web

Ou, si vous utilisez Vista, un cliché instantané est intégré. Voir http://en.wikipedia.org/wiki/Shadow_Copy

L'Archétype Paul
la source
1

@Lukman et Paul, j'aime l'idée de ces systèmes de version simplifiés pour les documents ordinaires, mais je pense que c'est une erreur de les utiliser pour le code source - l'impossibilité de créer des branches, de fusionner et de partager va vraiment vous retenir.

Dustin Getz
la source
1
Dépend. Cela correspond à ce que le PO a demandé. Il y a deux raisons pour le contrôle du code source à mon avis - la gestion de la configuration et la protection contre les problèmes / la stupidité des doigts des développeurs (ce que je constate). Si le premier est le problème, je suis d'accord avec vous. Si le second, toutes ces solutions feront l'affaire.
L'archétype de Paul
1

Quelques réflexions:

Vous aimerez peut-être SVK, qui semble se connecter à SVN. Je ne l'ai pas essayé moi-même, mais cela semble intéressant.

http://svk.bestpractical.com/view/HomePage

Des outils tels que Trac fournissent une navigation décente dans le référentiel SVN et pourraient valoir la peine d'être étudiés.

Si vous avez du mal à trouver le bon jargon à rechercher, recherchez «instantanés». Vous pouvez également souhaiter créer une sorte de processus d'archivage dans votre système de génération afin que chaque fois que vous exécutez make, vous obtenez automatiquement un instantané (ou tout ce qui a du sens pour votre situation).

Mitch Haile
la source
1

J'ai cron (recherchez google et choisissez celui que vous aimez) puis un script de ligne de commande pour exécuter pkzipc sur mes dossiers souce toutes les deux heures. une fois que j'ai lié le début de cron à ma startup, je l'ai juste démarré et l'ai oublié. m'a sauvé 1 fois quand, dans un gel cérébral tardif, j'ai tapé del / f / s * .cs

MikeJ
la source
1

Windows Vista Business, Enterprise et Ultimate ont cette fonctionnalité intégrée;)

Thomaschaaf
la source
Comment s'appelle-t-elle, que fait-elle exactement, quels sont les compromis? Parlez-vous peut-être de copie de volume fantôme?
redtuna
1

Vous voudrez vérifier cela si vous êtes intéressé par Time Machine d'Apple et que vous avez un système d'exploitation de plate-forme Windows.

http://www.genietimeline.com

La version bêta sera bientôt publiée ... Vous voudrez peut-être vous y inscrire ... J'ai hâte de mettre la main sur Genie Timeline ...

Apparemment, ses fonctionnalités incluent le CDP en temps réel, le versionnage de fichiers sans fin, la sauvegarde automatisée, l'intégration de la fenêtre au cœur ... J'attends ce type de logiciel sur Windows depuis des lustres ...

Kman24
la source
Un examen: pc-tutorials.suite101.com/article.cfm/… Je dirais que "détecter automatiquement les fichiers utilisateur les plus courants" est juste une solution de contournement car il sauvegarde uniquement les fichiers créés par l'utilisateur . Comment restaurer alors tout le système? Il ne semble pas y avoir d'intégration avec, par exemple, un logiciel de messagerie. Que faire après avoir supprimé un message? Dois-je savoir où et comment se trouve l'e-mail sur le disque dur? Et puis-je restaurer un seul message? La sauvegarde de pratiquement tout et l'intégration à d'autres logiciels font de Time Machine une solution unique. Bummer.
Arjan
1

Je suggère d'utiliser un contrôle de version que vous pouvez connecter à votre IDE. Cela rend le travail avec elle un jeu d'enfant. Cliquez simplement sur mettre à jour / valider dans votre arbre source et vous avez terminé!

Vilx-
la source
1

j'aime stocker et travailler sur mes projets en utilisant dropbox ( http://www.getdropbox.com/ ). non seulement il sauvegarde automatiquement votre travail, mais il conserve également les révisions pour vous.

Ron
la source
Si vous enregistrez souvent, ce sera un énorme gaspillage de révision dans le référentiel DropBox.
Patrick Desjardins
1

Windows Server 2003 et versions ultérieures ont un " cliché instantané », similaire à Time Machine, mais destinée à un environnement d'entreprise en réseau. Vous pourrez peut-être le configurer localement si vous le souhaitez vraiment.

Cependant, ce serait vraiment une solution inférieure à un bon contrôle du code source. Avec le contrôle de code source, vous pouvez afficher un historique complet et détaillé de chaque ligne de code dans votre base de code. Il est difficile d'apprécier sa valeur tant que vous ne l'avez pas essayé.

Cliché instantané

anon
la source
0

Si vous recherchez littéralement "Time Machine pour Windows": Windows Vista est livré avec Time Warp (c'est le nom de code, j'ai oublié comment s'appelle la fonctionnalité terminée). C'est à peu près la même chose que Time Machine d'OS X, mais avec moins de battage médiatique.

Jörg W Mittag
la source
1
Son nom est une copie de volume fantôme et il est trop convivial pour grand-mère. Vous pouvez uniquement sélectionner le type de fichiers que vous souhaitez sauvegarder ("musique", "images", etc.), et non les dossiers à surveiller. Il ne s'exécute qu'une fois par jour, sauf si vous lui demandez de faire une sauvegarde maintenant.
0

Essayez Flashbake . Il peut sauvegarder toutes les n minutes (via cron et vraisemblablement Windows Scheduler) les fichiers qui n'ont pas changé en m minutes (peut être 0). Vous auriez besoin de Python, donc Cygwin ou ActiveState Pyton. Il est basé sur git et conçu pour les types non techniques.

Brian Carlton
la source
0

Vous pourriez utiliser un VM et prendre des instantanés avant de faire de gros changements? C'est assez indolore de revenir en arrière de cette façon - environ 5 minutes et c'est fait :)

simone
la source
vm pour Virtual Machine? ...
Patrick Desjardins
0

SlickEdit a une fonctionnalité intéressante qui est similaire à ce que vous décrivez. Chaque fois que vous enregistrez le fichier sur lequel vous travaillez, il crée une sauvegarde locale (différente). À votre guise, vous pouvez ensuite parcourir l'historique des fichiers locaux. Vous pouvez l'utiliser pour compléter votre référentiel SVN, avec lequel SlickEdit peut également s'intégrer.

Eric
la source
0

vous pouvez essayer Genie Timeline, c'est comme Windows Time Machine pour Windows et vous pouvez revenir à la version dont vous avez besoin en utilisant un curseur temporel pour afficher chaque version http://www.genietimeline.com

Darma
la source
Assez de prises pour Genie déjà.
Arjan
0

Mercurial est parfait pour ce travail.

Chaque fois que vous voulez prendre un instantané de votre code, c'est tout ce que vous faites dans la ligne de commande: hg commit et vous avez terminé!

Si vous souhaitez parcourir les différentes versions de votre fichier, c'est facile avec TortoiseHG en utilisant son menu contextuel graphique lors d'un clic droit sur le fichier en question.

En outre, c'est plus agréable que SVN car il ne recouvre pas tous vos sous-dossiers avec des répertoires .svn cachés.

7wp
la source
Que se passe-t-il si je ne veux pas passer du temps à commettre, à tirer ... mais juste quelque chose d'automatique qui garde la trace de chaque changement, comme le fait Google Documents, mais local. Que suggérerais-tu?
skan