Y a-t-il des avantages à utiliser un DVCS pour un développeur solo?

19

En ce moment, j'utilise visual svn sur mon serveur et j'ai ankhsvn / tortoise sur ma machine personnelle. Cela fonctionne assez bien, et je n'ai pas à changer, mais si je peux voir certains avantages de l'utilisation d'un DVCS, alors je pourrais essayer.

Cependant, s'il n'y a pas de point ou de différence à l'utiliser sans d'autres personnes, alors je ne m'en préoccuperai pas.

Encore une fois, je demande, y a-t-il des avantages à utiliser un DVCS lorsque vous êtes le seul développeur?

Steven Evers
la source
1
Voir un article similaire sur stackoverflow: stackoverflow.com/questions/179161/… . Tout ce que vous devez savoir s'y résume bien.
ysolik
Donc, ma question a été fermée en double exact comme celle-ci. Malheureusement, cette question ne répond pas à la mienne. Vous poussez et tirez du maître lorsque vous êtes un développeur solo, ou vous branchez-vous et fusionnez-vous? J'essaie juste de voir quelle est la bonne façon d'utiliser un DVCS lorsque vous êtes en solo
Chase Florell
1
les sauvegardes sont essentiellement un autre clone. Cela peut être très important un jour. L'outillage git est également en avance de quelques années sur svn.
Travaillez-vous déjà sur un ordinateur portable, loin de votre serveur?
JBRWilkinson

Réponses:

19

Oui! Je pense que le plus grand avantage est le meilleur support de branchement + fusion offert par de nombreux DVCS. La ramification et la fusion sont une sorte de douleur dans le cul dans SVN; c'est assez ennuyeux pour que cela ne vaille pas le temps de créer de petites branches de courte durée pour des ajouts rapides de fonctionnalités, des corrections de bugs ou des expérimentations, mais la fusion est aussi assez ennuyeuse qu'il est difficile de créer également des branches de longue durée. D'un autre côté, le branchement et la fusion sont un jeu d'enfant dans Git, à tel point que je crée une branche (locale) pour presque chaque correction de bogue ou fonctionnalité sur laquelle je travaille.

Je pense que les outils offerts par Git pour visualiser les dépôts, les journaux de réception, etc., sont également bien meilleurs que dans SVN (bien que ce soit plus une chose Git que spécifique à un DVCS).

Un DVCS ne nécessite pas non plus de serveur central; lorsque vous utilisez SVN en tant que développeur, vous devez créer un référentiel local à insérer, ce qui n'est pas une exigence avec Git, car chaque référentiel contient l'historique complet. En corollaire, l'archivage d'un dépôt n'est qu'une question de zipper votre projet - il n'y a pas de "base de données centrale" à sauvegarder.

J'ai commencé à utiliser Git il y a près de quatre ans, après avoir utilisé SVN pendant un certain temps, et je n'ai pas regardé en arrière.

mipadi
la source
4
Selon certains, les DVCS ne facilitent pas la fusion, mais les utilisateurs de DVCS sont plus habitués à effectuer des fusions. Cela donne l'apparence subjective des fusions étant plus facile. Bien sûr, c'est la vue subjective qui compte.
Richard
3
DVCS n'égale pas exclusivement git
Murph
6
@ Richard Mais c'est faux, les outils centralisés ont tendance à avoir un historique linéaire qui ne prend pas bien en charge les fusions complexes.
alternative
2
@Murph: C'est vrai, mais j'utilise Git, donc je l'ai utilisé dans mon exemple.
mipadi
7

J'utilise beaucoup un DVCS pour mes affaires personnelles. (Je suis l'un de ces gars qui chez $ HOME en git .) Il y a plusieurs avantages:

  • Il fait de la réplication entre mon ordinateur portable et les ordinateurs de bureau et de laboratoire vraiment facile. Bien que cela soit vrai pour SVN aussi ...
  • Je peux m'engager sur l'ordinateur portable même si je n'ai pas accès à Internet.
  • Les sauvegardes sont aussi simples qu'un git pull.
  • Je peux utiliser git citoolpour décomposer de nombreuses modifications en validations de taille logique, même si j'ai effectué de nombreuses modifications indépendantes avant de décider de valider. Je ne connais pas d'outil pour le faire dans Subversion.
  • Lorsque je dois patcher un projet open source, il est plus facile de garder les choses organisées en créant un nouveau référentiel git dans le répertoire du projet que de faire une deuxième copie de l'arborescence source que je patche. (Vous ne pouvez pas le faire facilement avec Subversion car vous avez besoin d'un référentiel séparé ailleurs sur votre disque dur.)
  • J'utilise les fonctions de branchement faciles pour vérifier les révisions que je reçois d'autres personnes. Par exemple, lorsque je modifie un document de conférence avec mon conseiller, même s'il n'a pas accès au référentiel, je peux lui envoyer une copie du document et vérifier ses révisions dans une branche basée sur la version que j'ai envoyée. lui, puis utiliser git mergepour fusionner ses révisions avec tout ce que j'ai fait dans l'intervalle.

Git m'a habitué à penser à tous mes changements dans les blocs logiques, beaucoup plus que Subversion n'a jamais fait.

Ken Bloom
la source
(ou git fetch pour un miroir)
5

Ma mère éteint le modem quand il est trop tard pour dormir. DVCS me permet de continuer à travailler avec VCS une fois le modem éteint.

linquize
la source
1
Je l'appellerais "être en mesure de travailler à partir d'un avion" ou "être en mesure de travailler lorsque bitbucket.com tombe en panne", mais +1 pour couvrir le cas hors ligne.
Wyatt Barnett
Aussi des espaces extérieurs sans réseau 3G.
linquize
3

Eh bien, la réponse par défaut serait: "Si (tout ce que vous utilisez maintenant) fonctionne pour vous, pourquoi changeriez-vous?".

Mais, oui, même s'il n'y a aucune raison de changer, je trouve l'utilisation du DVCS un peu plus facile que les "anciens modèles". Ce qui suit vaut pour Mercurial , que j'utilise le plus, donc votre kilométrage peut varier, selon le système que vous allez utiliser.

  • vraiment facile à utiliser - j'ai trouvé toutes les commandes dont j'ai besoin en une heure environ
  • tout est local (vous n'avez pas besoin que le serveur distant soit en ligne)
  • branchement / fusion très facile - vous ne pensez même plus à ces choses
  • clonage facile (également, un type de branchement) - et généralement, une interface beaucoup plus conviviale (je l'ai trouvée plus agréable que git sur Windows; également certains concepts sont plus simples; c'est-à-dire ne nécessitent pas de réflexion de mon côté, conduisant donc à moins de bidouilles avec VS et plus de travail)
  • fonctionne bien avec svn

Jumping gate vers une introduction à Mercurial et un blog (jolies couleurs ;-) avec des conseils utiles .

Tour
la source
Hmm, CVS travaillait pour nous, mais pas du tout aussi bien que la subversion quand nous avons déménagé. Les nouveaux jouets vous offrent de nouvelles capacités - c'est précisément pour cette raison que je cherche à savoir si Mercurial pourrait maintenant être une meilleure option (d'autant plus que j'utilise FogBugz) et aussi le potentiel de véracité ...
Murph
3
Passer de SVN à Mercurial a été une révélation pour moi. Il a été inspiré par le merveilleux hginit.com de Joel, et je n'ai jamais regardé en arrière.
Adam Crossland