Contrôle de version pour les développeurs indépendants?


60

Pensez-vous que cela vaut la peine d’utiliser le contrôle de version si vous êtes un développeur indépendant, et si oui, pourquoi? Conservez-vous le référentiel sur votre propre ordinateur ou ailleurs, où il peut servir de sauvegarde?


54
J'aimerais beaucoup voir un pharmacien demander: "Devrais-je conserver les médicaments de manière organisée ou tout simplement les jeter dans un tiroir? Vaut-il la peine?"
Erik

23
Imaginez que vous travailliez très fort pendant une semaine d'affilée pour créer ce logiciel génial. Puis supprimez-le. Comment te sentirais-tu? Ce n'est pas juste du stockage. Quand quelque chose est cassé qui a fonctionné la semaine dernière, vous pouvez regarder et voir ce qui a changé et voir habituellement ce que vous avez cassé. Je vois encore des développeurs 'professionnels' avec des dossiers backup001 et backup_backup001 mélangés à leur source. Prenez de bonnes habitudes pendant que vous êtes encore jeune.
Erik

@Erik Yuck, les dossiers de sauvegarde semblent méchants. J'utilise le contrôle de source pour mes projets, bien que je ne sois pas très bon en engagement souvent.
vedosity

Réponses:


61

Si vous utilisez un contrôle de source décentralisé (Mercurial ou Git ou Bazaar ou autre), vous obtenez des avantages par rapport à SVN / CVS qui le rendent facile, utile et puissant à utiliser si vous êtes un indépendant:

  1. Vous vous engagez localement : votre répertoire de projet est votre référentiel avec l'historique complet. Vous n'avez donc pas besoin d'un serveur, vous vous engagez directement dans votre référentiel et vous pouvez avoir plusieurs référentiels sur le même ordinateur. Vous utilisez un ordinateur portable que vous ouvrez parfois pour continuer à travailler sur vos affaires? Génial! Vous n'avez pas besoin de configurer un serveur et si vous en avez besoin plus tard, c'est simple et il vous suffit de "pousser" et de "tirer" les modifications entre les référentiels.
  2. Il est fait pour faciliter l'expérimentation : vous avez souvent besoin d'avoir une idée sur une fonctionnalité sans générer de code polluant. Avec SVN et CVS, vous pouvez déjà utiliser un système de branchement et supprimer l’embranchement si la fonctionnalité n’est pas aussi performante que vous le souhaitiez. Mais si vous souhaitez fusionner la fonctionnalité avec la version de coffre, vous aurez beaucoup de surprises difficiles à réparer. Git, Mercurial et Bazaar (au moins) facilitent grandement les fusions et les branches. Vous pouvez même simplement dupliquer un référentiel, y travailler un certain temps, tout de même le valider et le tuer, ou reporter vos modifications dans le référentiel principal si vous le souhaitez.
  3. Flexibilité d'organisation : comme indiqué précédemment, comme vous avez les pensions que vous organisez à votre guise, il est facile de commencer seul et de permettre à d'autres personnes de travailler avec vous en modifiant votre organisation. Aucune organisation n’est imposée, il vous suffit de la configurer et le tour est joué. Souvent, je ne fais que pousser / tirer les changements entre mes propres ordinateurs (ordinateur portable / bureau / serveur) et je suis toujours seul sur mes développeurs. J'utilise Mercurial et cela m'aide à dupliquer mon travail mais aussi à travailler sur des fonctionnalités qui me plaisaient à l'extérieur sur mon ordinateur portable, puis à continuer de travailler sur d'autres fonctionnalités de mon bureau, puis de transférer les modifications de mon ordinateur portable sur mon ordinateur de bureau ou mon serveur et de fusionner l'ensemble du bureau + ordinateur portable et mettez-le (en tant que sauvegarde et dépôt du travail d’équipe futur) sur mon serveur.
  4. Cela facilite la configuration des sauvegardes : si vous configurez un référentiel central (sur GitHub s'il est public ou sur un référentiel privé sur BitBucket), vous pouvez facilement écrire un script qui sera exécuté à chaque démarrage d'un ordinateur, puis transmettez ledit script à à vos amis pour qu’il effectue régulièrement des sauvegardes automatiques de votre travail. C'est ce que je suis en train de faire, alors je suis sûr qu'il ne sera pas facile de perdre mon travail.

En fait, pour le moment, vous n'avez aucune excuse pour ne pas utiliser d'outil de source de contrôle pour aucun projet. Parce qu'ils sont plus puissants et flexibles qu'auparavant et s'adaptent à vos besoins.


6
Il y a toujours GitHub .
HedgeMage

8
Ou bitbucket.org si vous utilisez Mercurial.
Terence Ponce

7
Mercurial avec un référentiel de système de fichiers local sur Dropbox fonctionne très bien pour un seul développeur.
Pieter Breed

1
@Guillaume: Un seul développeur peut utiliser l'aspect "distribué" d'un DVCS. Je fais. Par exemple, je peux travailler sur l'ordinateur A, placer mon travail sur ma clé USB, puis extraire cette clé USB de l'ordinateur B.
barjak

1
@Guillaume "Distributed" est un aspect technique et non organisationnel. Vous pouvez utiliser un système source centralisé de constrol avec une organisation avec des intégrateurs uniquement autorisés à valider le code validé. C'est possible mais difficile à installer en raison de la nature centralisée de l'outil. Mais c'est toujours un problème orthogonal.
Klaim

34

Le contrôle du code source est totalement inutile pour les développeurs indépendants, car comme nous le savons tous:

  • les développeurs indépendants ne font jamais d'erreurs
  • les développeurs indépendants ne vont jamais sur les révisions qui ne fonctionnent pas
  • les développeurs indépendants n'ont jamais plus d'une version, ils n'ont donc aucune utilité pour les branches
  • les développeurs indépendants ne se soucient jamais de ce qu'ils ont changé hier ou la semaine dernière
  • les développeurs indépendants n'ont jamais besoin de sauvegardes

Appelez-moi un «développeur dépendant»: les référentiels Mercurial se clonent facilement entre mon ordinateur de bureau, mes ordinateurs portables, mes lecteurs de sauvegarde USB et bitbucket.org. Je suis devenu dépendant et j'aime bien ça!


6
Est-ce que cette réponse est sarcastique?

4
@kurtnelle: extrêmement!
Steven A. Lowe

1
Kewlio, juste en train de vérifier.

21

Pourquoi pas?

Je suis développeur solo et j'utilise BitBucket et Mercurial pour mes projets personnels. Avoir la possibilité de revenir en arrière et de modifier votre code est trop beau pour être laissé pour compte.


8
+1 pour BitBucket - ils offrent des référentiels privés illimités gratuitement.
Jon Sagara

2
Les dépôts privés gratuits sont la raison pour laquelle j'utilise BitBucket sur GitHub.
Terence Ponce

4
repo privé gratuit ?? Vous pourriez m'avoir converti de git en hg.
Gauthier

@ Gauthier, oui, BitBucket a des pensions privées gratuites. Je ne sais pas s'ils sont illimités cependant.
Terence Ponce

1
Vous pouvez toujours utiliser git avec bitbucket. En fait, importer directement depuis github, y compris les clés ssh. Vient de faire le mouvement, mais toujours utiliser git (je l'aime mieux!)
Daniel Casserly

1

J'y trouve de la valeur, personnellement. Mes projets sont tous archivés dans des référentiels git (tous conservés sur plusieurs machines en cas de panne matérielle). Les fonctionnalités les plus utiles sont la création de branches (pour que je puisse exécuter une expérience qui dérange la moitié de mon code, sans craindre de faire exploser quoi que ce soit) et de revenir en arrière (ce qui revient à annuler les stéroïdes; au cas où je trouverais des erreur qui est en dehors de la plage normale d'annulation).


1

Oui. C'est très très utile. Mon ami Matt Gallagher a posté cet excellent article sur ce sujet il y a quelques jours à peine sur son blog de développement iOS / MacOS "Cocoa With Love".

L'article est centré sur Mac & Git mais couvre les bases.

Vous pouvez également être intéressé par les questions StackExchange suivantes (et leurs réponses).


1

Vaut?? Doit! Si vous n'utilisez pas le contrôle de source, vous ne contrôlez pas vos sources, ce qui est une mauvaise chose. Vous ne pouvez pas vous empêcher de revenir en arrière, vous ne pouvez pas suivre les changements - vous passerez des heures à essayer de trouver le bogue factice que vous venez d'entrer. Il est préférable de l’avoir sur un serveur sauvegardé, mais vous pouvez également utiliser votre ordinateur et utiliser toute méthode de sauvegarde que vous jugez appropriée.


2
J'utilise effectivement le contrôle de source, mais j'ai aussi tendance à faire des choses comme sur-ingénierie et à adopter des choses qui sont exagérées. Je suis bien connu pour cela au travail. Là encore, je ne pense pas que les programmeurs pour lesquels je travaille, y compris moi-même, aient travaillé ailleurs comme programmeur et que la plupart d’entre nous sommes encore au lycée.
vedosity

1

Utilisez absolument le contrôle de source. Configurez ensuite un serveur de génération et automatisez vos processus de construction et de test. Les déclencheurs construisent à partir de vos commits source de votre référentiel central. Je travaille seul depuis trois ans de cette manière et c'est merveilleux.


0

Oui.

Même les développeurs isolés doivent parfois voir l'état de leur code à partir d'une révision passée. Et c'est toujours une bonne idée de sauvegarder tout ce qui est important, et cela s'applique à tout le monde.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.