web-dev-qa-db-fra.com

git pour des projets personnels (un homme). Trop fort?

Je connais et utilise deux systèmes de contrôle de version: Subversion et git. Subversion, à partir de maintenant, est utilisé pour des projets personnels où je suis le seul développeur et git est utilisé pour des projets open source et des projets où je pense que d'autres travailleront également sur le projet. Ceci est principalement dû aux capacités de forge et de fusion étonnantes de git, où tout le monde peut travailler sur sa propre branche; très utile.

Maintenant, j'utilise Subversion pour des projets personnels, car je pense que git n'a guère de sens là-bas. Cela semble être un peu exagéré. Cela me convient si elle est centralisée (sur mon serveur domestique, généralement) alors que je suis le seul développeur; Je prends quand même régulièrement des sauvegardes. Je n'ai pas besoin de pouvoir créer ma propre branche, la branche principale is ma branche. Oui, SVN a un support simple pour les branchements, mais un support beaucoup plus puissant n'a aucun sens, je pense. La fusion peut être pénible, ou du moins d'après ma petite expérience.

Y a-t-il une bonne raison pour laquelle j'utilise git sur des projets personnels, ou est-ce tout simplement excessif?

87
Anto

Ce n'est pas exagéré. La principale raison pour laquelle j'ai commencé à utiliser Git et Mercurial sur Subversion pour des projets personnels est que le lancement d'un référentiel est beaucoup plus facile.

Vous voulez démarrer un nouveau projet?

> git init

BAM! Pas besoin de configurer un serveur de référentiel ni d'archiver une structure de dossiers pour prendre en charge les branchements et les balises dans un référentiel Subversion.

Partager votre projet plus tard est simplement une question de: git Push (autre que d'avoir un référentiel distant). Essayez de le faire rapidement avec Subversion!

157
Spoike

Je dirais que l'utilisation de Subversion pour des projets personnels locaux est exagérée, alors que Git ne l'est décidément pas. Git prendra moins de place (en raison du concept de "révisions" inefficace de SVN par rapport aux instantanés d'objets de Git), nécessite moins de configuration (git init contre une douzaine de commandes svnadmin et configuration d'autorisations, etc.), est plus facile à sauvegarder (git clone --bare [ou git Push Origin si vous utilisez Github ou similaire] et que vous avez terminé), et dispose de meilleurs outils pour gérer votre code (le branchement est gratuit et la fusion est plus facile et plus propre). Ce n'est pas parce que personne d'autre n'a un clone de votre référentiel que les avantages de n'importe quel DVCS sont "excessifs".

De plus, je dirais que le support de branchement de Git est moins complexe que SVN, avec de plus grandes récompenses.

46
greyfade

Penser que vous ne brancherez jamais votre propre code est un peu myope. J'ai branché mon propre code à plusieurs reprises, en particulier lorsque j'expérimentais avec une nouvelle approche dont je n'étais pas encore entièrement convaincu. Vous voudrez éventuellement la fonctionnalité.

Cela vient d'un utilisateur de longue date de Subversion. La consolidation sur un seul outil peut vraiment vous faciliter la vie.

34
Berin Loritsch

La surpuissance est réservée en cas de dommages collatéraux causés par la "solution". L'utilisation d'un pistolet pour tuer une mouche signifie que la balle va ailleurs où il y a des dommages. C'est exagéré. Utiliser quelque chose de plus puissant que nécessaire qui ne cause pas de problème n'est pas exagéré et peut être une bonne chose s'il vous aide à rationaliser votre processus de développement. Il ne cause aucun dommage et vous permet de n'avoir à mettre à jour qu'un seul ensemble de logiciels au lieu de deux. Alors pourquoi s'embêter avec deux systèmes au lieu d'un?

9
stonemetal

J'utilise Git pour mes projets individuels et j'adore ça. J'utilisais auparavant Subversion et je n'ai pas encore vu d'inconvénient à utiliser Git. C'est plus puissant mais pas d'une manière qui complique les choses simples. Faire des choses simples inutilement compliquées/chères/lentes/etc. est à mon humble avis une condition nécessaire pour appeler quelque chose de trop. En outre, sur Github, j'ai bifurqué les projets précédemment dirigés par d'autres personnes pour ajouter une fonctionnalité que je voulais, puis je leur ai envoyé des demandes d'extraction. Je trouverais ça plutôt cool si quelqu'un intéressé par mes projets faisait la même chose.

7
dsimcha

J'ai jamais utilisé le contrôle de code source sur des projets personnels avant DVCS, donc c'est un peu bizarre d'imaginer quelqu'un prenant la vue opposée. Certaines de mes raisons sont:

  • Facile à installer et à démonter. Par exemple, un collègue m'a donné la semaine dernière un puzzle de programmation que j'ai résolu en plusieurs petites étapes. J'ai fait un dépôt git qui a duré toutes les 45 minutes pour maintenir mon travail, puis il a disparu. Je ne sais pas à quel point quelque chose comme ça est facile dans Subversion, mais je n'ai jamais entendu parler de quelqu'un qui le fasse.
  • Débranché. Pour moi, pouvoir travailler hors ligne est beaucoup plus un avantage pour un projet de loisir que pour un travail. Je n'ai pas besoin de percer un trou dans mon pare-feu domestique ou d'héberger un projet publiquement. Je peux temporairement mettre un dépôt sur une clé USB ou un ordinateur portable, et tout garder synchronisé.
  • Tout était colocalisé. La combinaison du référentiel et de l'arbre de travail facilite le suivi des petits projets lors de mises à niveau du système d'exploitation.
  • Fonctionnalités puissantes. Bien sûr, je n'ai pas besoin de tout le temps, mais il est là quand j'en ai besoin et ne consomme aucune ressource quand je n'en ai pas.
7
Karl Bielefeldt

On m'a dit que git-bisect est vraiment bien pour trouver le commit exact qui a introduit un comportement donné, en naviguant d'avant en arrière dans les commits en fonction de votre entrée.

Vous voulez devez le faire un jour pour des choses que vous ne pouvez tout simplement pas comprendre ce qui s'est passé.


EDIT: En outre, la possibilité de créer une branche est très importante lorsque vous devez faire des corrections de bugs dans les anciennes versions que les clients utilisent. Vous devez être capable de gérer "il suffit de réparer cette petite chose mais je ne veux pas de la nouvelle version parce que je ne veux pas tout recommencer maintenant".

6
user1249

Cela dépend de la gravité que vous souhaitez obtenir concernant la version de votre propre code. Si ce que vous construisez est par exemple une simple bibliothèque qui n'aura jamais que la version actuelle (ou aussi longtemps que cela est vrai), je n'utiliserais personnellement qu'une option de sauvegarde de base comme Dropbox. Si vous perdez tout votre code, vous pouvez le récupérer à partir du Web, et Dropbox a une sauvegarde de version de 30 jours si vous faites vraiment quelque chose de stupide.

Cependant, si vous avez par exemple besoin de maintenir les branches Production et Dev, alors git est absolument un excellent outil - et beaucoup plus rapide que svn. Attention toutefois au risque de défaillance du disque dur si vous ne stockez que les données localement.

2
Chris Moschini

J'utiliserais toujours, toujours, toujours un système de contrôle de version pour tout type de projet de développement. Grand ou petit n'a pas d'importance. Que je joue à la maison avec une sorte de nouvelle technologie, que j'écrive un petit assistant pour me faciliter la vie ou que je me développe professionnellement dans une grande équipe distribuée - je voudrais toujours qu'un système de contrôle de version me soutienne.

Bien sûr, la plupart du temps pour les petits projets personnels, vous n'utiliserez pas la plupart des fonctionnalités, mais configurer un référentiel git (ou même un référentiel Subversion local) n'est pas un gros problème, alors allez-y! Et avant de le savoir, vous voudrez savoir "bon sang, quel était le contenu du fichier X vendredi dernier?". Sans contrôle de version - bonne chance ;-)

Donc, peu importe si vous utilisez git ou SVN - personnellement, je commence à migrer de plus en plus de SVN vers git mais l'essentiel est d'utiliser le contrôle de version - même pour les petites choses.

2
perdian

Seulement parce que personne ne l'a mentionné: pour les projets personnels, darcs est vraiment bon, et moins impliqué que git pour faire un contrôle de version simple. Ce n'est pas aussi rapide pour les grands projets, mais alors, Subversion non plus!

1
wlangstroth

Il peut être un puissant changement de paradigme mental de comprendre que ce que nous faisons est l'expérimentation. Avoir un outil bon marché/facile à prendre en charge, améliore votre capacité à aller de l'avant, en partie parce qu'il améliore votre capacité à vous retirer de toute expérience quand elle se passe mal.

De nombreux développeurs disent: Eh bien, je fais juste des copies de mon code. Mais ces copies deviennent difficiles à gérer et finissent en désordre. Vous avez plusieurs copies et vous ne vous souvenez pas de quelle copie pour quoi, puis essayez de déterminer quand il est sûr de les supprimer.

Tout cela devient encore plus précieux lorsque l'expérience implique des changements coordonnés sur plusieurs fichiers. Et quand il s'agit d'un projet solo, utiliser Git devient encore plus simple.

Au lieu de me demander si je devrais l'utiliser sur un projet solo, je pense maintenant quelle honte je n'avais pas découvert cela plus tôt.

0
WarrenT