J'utilise git pour mes projets personnels et je pense que c'est génial. Il est rapide, flexible, puissant et fonctionne très bien pour le développement à distance.
Mais maintenant, c'est obligatoire au travail et, franchement, nous avons des problèmes.
En l'état, git ne semble pas bien fonctionner pour le développement centralisé dans une grande organisation (plus de 20 développeurs) avec des développeurs aux capacités et aux niveaux de sophistication de git variables - surtout en comparaison avec d'autres systèmes de contrôle de source comme Perforce ou Subversion, qui sont destinés à ce type d'environnement. (Oui, je sais, Linus ne l'a jamais destiné à cela).
Mais - pour des raisons politiques - nous sommes coincés avec git, même si c'est nul pour ce que nous essayons de faire avec.
Voici quelques-unes des choses que nous voyons :
- Les outils GUI ne sont pas matures
- En utilisant les outils en ligne de commande, il est beaucoup trop facile de faire échouer une fusion et d'effacer les modifications apportées par quelqu'un d'autre.
- Il n'offre pas de permissions de dépôt par utilisateur au-delà des privilèges globaux de lecture seule ou de lecture-écriture.
- Si vous avez une permission pour N'IMPORTE QUELLE partie d'un dépôt, vous pouvez faire la même chose pour TOUTES les parties du dépôt, donc vous ne pouvez pas faire quelque chose comme créer une branche de suivi de petit groupe sur le serveur central que les autres personnes ne peuvent pas toucher.
- Il est difficile d'encourager, et encore moins de faire respecter, les flux de travail autres que le "tout est permis" ou le "dictateur bienveillant".
- Il n'est pas évident de savoir s'il est préférable d'utiliser un seul grand dépôt (qui permet à tout le monde de toucher à tout) ou un grand nombre de dépôts par composant (qui donnent lieu à des maux de tête lors de la synchronisation des versions).
- Avec de multiples dépôts, il n'est pas non plus évident de reproduire toutes les sources que quelqu'un d'autre possède en puisant dans le dépôt central, ou de faire quelque chose comme obtenir tout ce qui se trouve à 16h30 hier après-midi.
Cependant, j'ai entendu dire que des gens utilisent git avec succès dans de grandes organisations de développement.
Si vous vous trouvez dans cette situation - ou si vous disposez d'outils, de conseils et d'astuces pour faciliter et rendre plus productive l'utilisation de git dans une grande organisation où certaines personnes ne sont pas des adeptes de la ligne de commande - j'aimerais entendre ce que vous avez à suggérer.
D'ailleurs, j'ai déjà posé une version de cette question sur LinkedIn, et je n'ai obtenu aucune véritable réponse, mais beaucoup de "bon sang, j'aimerais bien le savoir aussi !".
UPDATE : Laissez-moi clarifier...
Là où je travaille, nous ne pouvons pas utiliser autre chose que git. . Ce n'est pas une option. Nous sommes coincés avec ça. Nous ne pouvons pas utiliser mercurial, svn, bitkeeper, Visual Source Safe, ClearCase, PVCS, SCCS, RCS, bazaar, Darcs, monotone, Perforce, Fossil, AccuRev, CVS, ou même le bon vieux Projector d'Apple que j'utilisais en 1987. Donc, même si vous êtes les bienvenus pour discuter d'autres options, Tu n'auras pas la prime si tu ne discutes pas avec Git.
Aussi, je suis à la recherche de conseils pratiques sur l'utilisation de git dans l'entreprise . J'ai mis toute une liste de problèmes que nous rencontrons en haut de cette question. Encore une fois, les gens sont les bienvenus pour discuter de la théorie, mais si vous voulez gagner la prime, donnez-moi des solutions.