Question

Je suis un développeur isolé pour le moment; S'il vous plaît partagez vos expériences sur ce qui est une bonne configuration VC pour un développeur seul.

Mes contraintes sont;

  • Je travaille sur plusieurs machines et je dois les synchroniser
  • Parfois, je travaille hors connexion

J'utilise actuellement Subversion (uniquement le client sur un serveur distant) et tout fonctionne correctement. Mercurial et git DVC m'intéressent, 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 beaucoup les fonctionnalités de synchronisation automatique de mes référentiels (réduction des forks accidentelles), la prise en charge de la documentation (wiki et incorporée / versionnée) qui prend en charge le besoin de documenter le code et le projet dans différents espaces, le système de suivi des problèmes facile à configurer, un bon accès contrôle, interface web skinnable et communauté utile.

Était-ce utile?

La solution

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

Ce n’est pas un projet aussi, c’est écrit par Dr. Richard Hipp, le même gars qui a écrit SQLite. Le référentiel entier est un fichier SQLite, il est donc très solide. Vous avez un wiki et un système de tickets intégré. Vous pouvez avoir plusieurs utilisateurs avec des droits variables. Vous pouvez par exemple donner à vos utilisateurs le droit d'émettre des tickets mais pas de voir le code source.

C’est assez simple, simple et il fonctionne comme un système distribué, ce qui signifie que vous pouvez cloner et extraire des achats localement et à distance.

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

Une chose qui m’impressionne vraiment avec fossile est que c’est juste un fichier, c’est tout. L’ensemble du programme de fossiles est plutôt petit, mais il n’est pas vraiment surprenant de voir qui est l’auteur.

Et comme votre référentiel est un fichier sqlite, il vous suffit de le copier et vous disposez d'une sauvegarde.

Autres conseils

Chaque personne vous dira probablement que son DVCS préféré est le meilleur pour vous. Je vous dirais que Mercurial est le meilleur! ; -)

Mais c'est de la merde . Vous avez certainement besoin d’un DVCS, mais essayez-les tous, ou du moins ceux qui sont le 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 recommanderais d'essayer (ou de lire la documentation de) au moins Mercurial, Git et Bazaar. SVK a peut-être la fonctionnalité souhaitable, à savoir qu'il est conçu pour interagir avec SVN, mais la dernière fois que j'ai vérifié, ils avaient des problèmes de performances. Nous avons également un plugin d’interaction SVN, AFAIK.

Travailler hors connexion est absolument logique pour Git. Vous pouvez parcourir l'intégralité de votre historique, effectuer des validations, effectuer des fusions, créer des branches, essentiellement tout ce qui concerne votre référentiel hors ligne. En outre, vous pouvez configurer un référentiel central qui est le "maître", c’est-à-dire que vous allez appliquer toutes vos modifications à ce référentiel central. De cette manière, vous savez toujours où se trouve le dernier code, mais vous bénéficiez également de la possibilité d’envoyer les modifications d’une machine à une autre si vous en avez besoin.

J'ai récemment converti tous mes référentiels 80+ Subversion en Git et je n'ai pas regardé en arrière.

Bazaar : consultez la page cas d'utilisation en solo et Bazaar dans 5 minutes .

Un système de contrôle de version distribué est particulièrement utile pour une utilisation hors connexion. / p>

Subversion fonctionne très bien (surtout avec TortoiseSVN). Je ne pense pas qu'un VC distribué aurait un avantage dans un scénario à développeur unique.

Éditer: je n’avais pas remarqué le "parfois je travaille hors connexion". partie quand j'ai initialement répondu. Dans ce cas, je suppose que vous devez pondérer la complexité supplémentaire d'un DVCS avec le fait qu'il vous donne l'historique / les révisions hors ligne.

Je recommande toujours darcs pour cette situation ( voici ma réponse à une question similaire ) car son interface utilisateur en ligne de commande est une joie à utiliser et la joie est ce que je veux de ma part. propre développement:)

Git est livré avec des interfaces graphiques fonctionnelles, mais je l’ai trouvé trop difficile à manier par rapport à darcs lorsque je tape en ligne de commande pour l’utiliser pour des projets personnels.

L'un ou l'autre satisfera votre besoin de travailler en mode hors connexion et il est facile de synchroniser les modifications avec.

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

Une solution Unix de base consiste à conserver un historique dans le répertoire de travail avec RCS , et synchronisez le répertoire de travail (y compris l'historique) entre différentes machines à l'aide de Unison . . Le principal inconvénient est que, si vous changez de machine, vous devez d’abord les synchroniser avant de commencer à valider de nouvelles révisions. Si cela pose un problème, vous feriez bien de vous tourner vers un vrai DVCS.

Vous trouverez peut-être des réponses utiles à la question que j'ai posée: alternative à VSS pour un one man show (armée d'un?):

Alternative à VSS pour un homme spectacle (armée d'un?)

Vous devez essayer un DVCS (ou ce que j’appelle un peer2peer VCS). Je suis d'accord avec nowhereman. Ne perdez pas de temps avec svn et tous les logiciels installés pour le rendre utile. Un DVCS est plus intuitif que l'ancien et le style client-serveur déconseillé. SVN ne sait pas ce qu'est un tag ou une branche. Pour Svn, tous ne sont que des copies.

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

Dans Mercurial, une balise n’est que cela. Vous ne pouvez pas garder les versions de suivi d'une balise comme vous le pouvez dans svn.

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

Je suis un grand fan du contrôle de version distribuée. J'ai joué avec git, mercurial et bzr, et j'utilise maintenant git pour tous mes projets. Tous les trois sont parfaits pour une utilisation personnelle, car il est très simple de créer un nouveau référentiel sur votre ordinateur. Vous n'avez pas besoin de faire tourner un serveur.

Voici quelques idées pour partager votre référentiel sur plusieurs ordinateurs. 1) Utilisez un service hébergé comme github. Celles-ci sont généralement gratuites pour les projets open source et peu coûteuses pour les projets commerciaux. Nous utilisons github au travail. 2) Utilisez dropbox pour créer un disque partagé sauvegardé sur Internet auquel tous vos ordinateurs peuvent accéder. C'est gratuit pour moins de 2 Go. (Si vous êtes sur Ubuntu, Ubuntu One est une autre alternative.) Placez votre référentiel git principal dans une boîte de dépôt, puis placez des référentiels locaux sur chacun de vos ordinateurs. (Donc, dropbox joue le même rôle que github.) C’est totalement gratuit, vous permet de travailler facilement hors ligne, vous permet de partager ultérieurement le référentiel avec d’autres développeurs, si vous en avez besoin, et il est sauvegardé automatiquement.

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

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

Je recommande assembla.com - ils fournissent gratuitement svn, wiki et trac. Impossible d'obtenir mieux que ça!

Si vous aimez la subversion, je vous suggère de consulter SVK

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top