2008-09-26 8 views
67

Je suis un développeur seul en ce moment; s'il vous plaît partager vos expériences sur ce qui est une bonne configuration VC pour un développeur seul.Meilleur contrôle de version pour le développeur seul

Mes contraintes sont;

  • Je travaille sur plusieurs machines et le besoin de les garder synchronisés jusqu'à
  • Parfois, je travaille en ligne

J'utilise actuellement Subversion (juste le client à un serveur distant), et est fonctionne bien. Je suis intéressé par Mercurial et git DVCS, mais aucun de leurs cas d'utilisation n'a de sens pour ma situation.

EDIT: J'ai migré mon développement actif vers Fossil http://www.fossil-scm.org/ après l'avoir testé avec un client. J'aime vraiment les fonctionnalités pour autosynchroniser mes dépôts (réduire les fourches accidentelles), le support de documentation (wiki et embarqué/versionné) qui supporte mon besoin de documenter le code et le projet dans différents espaces, le tracker facile à configurer, un bon accès contrôle, interface Web skinnable et communauté utile.

+1

Cette question m'a aidé http://stackoverflow.com/questions/97850/version-control-on-a-2gb-usb-drive#97955 – Stephen

+0

Je n'aime pas VSS AT ALL. Cependant, il a un avantage que d'autres ne: Son système de fichiers basé. Donc, pour un développeur, qui cherche à synchroniser à différents endroits, mettre un db VSS dans un dossier mesh.com est un moyen rapide de se mettre en marche – Will

+0

Je suis aussi très heureux Fossil fonctionne ou compile sur tout ce que j'ai essayé de dev sur: xp, vista, macs ppc, macs intel, et Windows 7. – Stephen

Répondre

43

Pourrais-je suggérer un contrôle de version plutôt nouveau appelé fossile.

Ce n'est pas un projet moi aussi, il est écrit par le Dr Richard Hipp, le même gars qui a fait SQLite. L'ensemble du dépôt est un fichier SQLite, donc c'est très solide. Vous avez un wiki et un système de ticket intégré. Vous pouvez avoir de nombreux utilisateurs avec des droits variables, ainsi vous pouvez donner à vos utilisateurs le droit d'émettre des tickets mais pas de voir le code source.

Ceci est assez simple, simple et fonctionne comme un système distribué, ce qui signifie que vous pouvez cloner et archiver localement et à distance.

Plus d'informations peut être vu sur http://www.fossil-scm.org/ et si vous regardez de près, vous voyez que tout le site est en fait fossile.

Une chose qui m'a vraiment impressionné avec fossile, c'est que c'est juste un fichier, c'est tout. Tout le programme des fossiles est plutôt petit, mais compte tenu de l'auteur, ce n'est pas vraiment une surprise.

Etant donné que votre référentiel est un fichier sqlite, il vous suffit de le copier et vous avez une sauvegarde.

+1

Vous pouvez être intéressé par [Monotone] (http://www.monotone.ca) qui est un autre DVCS qui utilise SQLite comme stockage backend. De ma propre expérience, je dois admettre qu'il est vraiment agréable de pouvoir sauvegarder ou copier un référentiel entier. –

+3

fossile est génial !!! Je n'ai jamais vu une application comme ça avant, une telle simplicité et flexibilité !!! – zengr

7

Subversion fonctionne très bien (en particulier avec TortoiseSVN). Je ne pense pas que tout VC distribué aurait un avantage dans un scénario de développeur unique. Edit: Je n'avais pas remarqué la partie "parfois je travaille hors-ligne" quand j'ai répondu à l'origine. Dans ce cas, je suppose que vous devez peser la complexité supplémentaire d'un DVCS avec le fait qu'il vous donne l'histoire hors ligne/révisions.

+0

Je suis intéressé par comment * vous * * utilisez * svn. – Stephen

+1

git est incroyablement facile à configurer pour une personne, vous n'avez besoin que d'un répertoire et d'un ensemble d'outils. Il n'y a pas de serveur requis. –

+2

Même sans travailler hors ligne, les DVCS ont de forts avantages sur les centralisés. Créer un repo est beaucoup plus simple et fonctionne en parallèle sur plusieurs branches. –

0

SourceGear Vault est gratuit pour un développeur et est très bon.

+0

Pourquoi est-ce bon pour un développeur seul? – Stephen

+2

Génial. Voudriez-vous vraiment choisir un VCS que vous ne pouvez plus utiliser quand quelqu'un est prêt à vous aider ?! Ça me semble fou. –

30

Travailler hors connexion est tout à fait logique pour Git. Vous pouvez parcourir l'ensemble de votre historique, effectuer des validations, faire des fusions, créer des branches, essentiellement faire tout ce qui concerne votre référentiel hors ligne. De plus, vous pouvez configurer un référentiel central qui est le «maître», c'est-à-dire que vous allez pousser tous vos changements dans ce référentiel central. De cette façon, vous savez toujours où se trouve le dernier code, mais vous avez également l'avantage de pouvoir envoyer des modifications d'une machine à une autre si vous en avez besoin.

J'ai récemment converti tous mes dépôts Subversion 80 + à Git, et je n'ai pas regardé en arrière.

+0

de même, récemment migré tous mes cvs privés repos à git. parfait à utiliser pour n'importe quel répertoire local, vous pouvez décider de la version, ou poussez votre repos vers github.com ou assembla.com pour une utilisation sur de nombreuses machines. – tardate

+0

appuyant sur git, fantastique et puissant. – Valentin

+0

D'accord ... Je garde une copie centrale de ma source sur GitHub et j'appuie une copie de sauvegarde de mon repo sur une clé USB –

3

Je recommande toujours darcs cette situation (here's my answer to a similar question) comme interface de ligne de commande utilisateur est une joie à utiliser et la joie est ce que je veux de mon propre développement :)

Git est livré avec des interfaces graphiques réalistes, mais Je l'ai trouvé trop lourd par rapport à Darcs quand je tape sur la ligne de commande à utiliser pour des projets personnels.

Soit répondra à votre besoin de travailler hors ligne et ils sont tous deux faciles à synchroniser les changements avec.

0

Je recommande assembla.com - ils fournissent gratuitement svn, wiki et trac. Je n'ai rien de mieux que ça!

+0

ils soutiennent également git – tardate

2

Subversion nécessite l'accès à un référentiel centralisé. Si vous travaillez hors connexion et à partir de plusieurs machines, cela signifie que vous ne pouvez pas effectuer de révisions en mode hors connexion.

Une solution Unix bones serait de conserver un historique dans le répertoire de travail avec RCS, et de synchroniser le répertoire de travail (y compris l'historique) entre les différentes machines en utilisant Unison.La principale mise en garde serait que, si vous changez de machine, vous devrez d'abord les synchroniser avant de commencer à commettre de nouvelles révisions. Si c'est un problème, il vaut mieux regarder dans un vrai DVCS.

+0

cool conseil! Je ne savais pas à l'unisson. – Stephen

0

Si vous êtes avec la subversion Comfortabel, je vous suggère de jeter un oeil à SVK

49

Chaque personne va probablement vous dire que leur favori DVCS est le meilleur pour vous. Je dirais que Mercurial est le meilleur! ;-)

Mais c'est de la merde. Vous avez définitivement besoin d'un DVCS, mais essayez-les tous, ou du moins les plus utilisés, et faites votre choix par vous-même. Choisir le DVCS pour lequel vous connaissez un gourou est également un choix judicieux, BTW. Je recommande d'essayer (ou de lire la documentation de) au moins Mercurial, Git et Bazaar. SVK peut avoir la caractéristique désirable qu'il est conçu pour interagir avec SVN, mais la dernière fois que j'ai vérifié qu'ils avaient des problèmes de performance méchant. Git a aussi un plugin d'interaction SVN, AFAIK.

+0

Je sais qu'il n'a pas le plus de votes. Mais j'aime ça. – Stephen

+0

Hg dispose également d'un package non officiel appelé "hgsvn" pour interagir avec un serveur svn. Il n'est pas aussi mature que Git cependant, par exemple il n'était pas capable de cloner notre repo - commuté à git et jamais regardé en arrière. –

+0

@Greg: essayez hgsubversion au lieu de hgsvn: http://bitbucket.org/durin42/hgsubversion/ C'est un pont bidirectionnel entre Mercurial et Subversion. –

2

Vous devez essayer un DVCS (ou ce que je appelez un peer2peer VCS). Je suis d'accord avec le président. Ne perdez pas de temps avec svn et tout ce qui est fait pour le rendre utile. Un DVCS c'est plus intuitve que l'ancien style client-serveur déconseillé. SVN ne sait pas ce qu'est un tag, ou une branche. Pour Svn tous sont juste des copies.

Par exemple: il est si difficile d'implémenter une variable comme un numéro de révision.

En mercurial une étiquette est juste cela. Vous ne pouvez pas garder trace des versions d'une balise comme vous pouvez dans svn.

Lisez ici dvcs guide pour commencer. Ensuite, vous pouvez utiliser svk, mercurial aka hg ou git. Mais s'il vous plait, ne remontez pas dans le temps

+0

Vous devriez reformuler votre réponse, s'il vous plaît! J'ai été surpris de voir "SVN ne sait pas ce qu'est une étiquette, ou une branche". Cela m'a donné l'idée que SVN ne peut pas faire de branches ou de tags; ce sont des choses que j'ai déjà faites pour moi-même! Le fait est que, même si SVN ne peut pas faire la distinction entre les copies et les branches ou les étiquettes, il vous permet de les faire! – sergiol

1

Je suis un grand fan du contrôle de version distribué. J'ai joué avec git, mercurial et bzr, et maintenant j'utilise git pour tous mes projets. Tous les trois sont parfaits pour un usage personnel, car il est si simple de créer un nouveau référentiel sur votre ordinateur. Vous n'avez pas besoin d'exécuter de serveurs.

Voici quelques idées pour partager votre référentiel sur plusieurs ordinateurs. 1) Utilisez un service hébergé comme github. Habituellement, ils sont gratuits pour les projets open source et à faible coût pour les projets commerciaux. Nous utilisons github au travail. 2) Utilisez la boîte de dépôt pour créer un disque partagé sur Internet auquel tous vos ordinateurs peuvent accéder. C'est gratuit pour moins de 2 GB. (Si vous êtes sur Ubuntu, Ubuntu One est une autre alternative.) Mettez votre dépôt maître git sur une boîte de dépôt, puis placez des dépôts locaux sur chacun de vos ordinateurs. (Ainsi, dropbox joue le même rôle que github.) Il est entièrement gratuit, vous permet de travailler hors ligne facilement, vous permet de partager le référentiel avec d'autres développeurs plus tard si vous le souhaitez, et il est sauvegardé automatiquement.

De même, si vous voulez vraiment utiliser SVN, regardez une solution hébergée comme cvsdude (malgré le nom, ils exécutent SVN) plutôt que d'utiliser votre propre serveur. Vous pourrez accéder à votre code depuis n'importe où, et cela ne vous coûtera que 5-10 $/mois.

+2

Bitbucket.org est également intéressant. Il fournit des comptes publics et privés * illimités gratuits pour Mercurial et Git (jusqu'à 5 committers). Il intègre un wiki et un tracker de problèmes, et possède une interface puissante, un peu comme GitHub. C'est devenu mon référentiel de choix pour un usage personnel. –

Questions connexes