33 votes

L'utilisation d'un référentiel central va-t-elle à l'encontre de l'objectif de GIT?

Si vous êtes dans une entreprise de réglage de nombreuses personnes travaillant sur une application en particulier, est ce que cela va à l'encontre d'un contrôle de version distribué système officiel référentiel central?

Parfois j'ai du mal à comprendre le concept d'un système distribué, système de contrôle de version comme GIT dans un environnement d'entreprise. Si vous ne disposez pas d'un référentiel central, ne serait-il pas un pain PITA pour savoir qui avait la dernière version mise à jour pour tirer à partir d', qui a la caractéristique x ou correction de bug y que tout le monde a besoin pour s'emparer, etc, etc.

Est-il vaincre le but de GIT pour l'utiliser dans un mode similaire à SVN, avec un référentiel central que tout le monde pousse/tire? Chaque fois que je pense à propos de faire que je sens que je manque le point de tout.

Quelqu'un pourrait-il m'éclairer?

29voto

JesperE Points 34356

Pas vraiment. DCVS permet simplement plus de liberté dans la manière d’interagir entre développeurs sans impliquer le référentiel central. Le référentiel officiel n'est officiel que par consensus . Linux possède également un référentiel central, celui à partir duquel sont créées les versions du noyau "officielles", mais il n'y a pas de différence physique entre les référentiels centraux, "officiels" et clients, comme dans le VCS centralisé.

29voto

deizel Points 7354

Vous êtes probablement penser le long des lignes de ce schéma:

alt text

Ce sera probablement ressembler à un chaos à venir à partir d'un CVC. "Nous avons besoin d'un peu d'ordre", me direz-vous?

Si vous ne disposez pas d'un référentiel central, ne serait-il pas un pain PITA pour savoir qui avait la dernière version mise à jour pour tirer à partir d', qui a la caractéristique x ou correction de bug y que tout le monde a besoin pour s'emparer, etc, etc.

Oui. Contrairement à un CVC Il n'y a pas vraiment une "dernière version". Si il n'y a aucun emplacement central, vous n'avez pas immédiatement savoir si pour voir Sue, Joe ou Eve pour la dernière version. Un emplacement central permet de clarifier ce que les derniers "stable" version.

Quelque chose d'un peu plus comme ceci:

alt text

Il pourrait également être intéressant de noter qu'il pourrait y avoir plus d'un perçue référentiel central en fonction de la compétence des groupes de personnes au sein d'une organisation.

Imaginez un chef de projet qui gère plusieurs équipes de développement, chaque équipe peut avoir une "centrale" référentiel dont ils pousser à. Chaque semaine, le chef de projet peut tirer les modifications de chaque équipe dans sa "centrale" du référentiel, de les fusionner et de les repousser à ses équipes de "centrale" référentiels.

Ce n'est probablement pas un bon exemple (je suis toujours obtenir ma tête autour de tout cela), mais c'est juste un gestionnaire de projet. Jeter dans un peu plus de projets/directeurs et l'équipe d'assurance qualité, alors vous pouvez voir où je veux en venir..

--

8voto

RogerV Points 1750

Avec le contrôle de source distribué, un référentiel "officiel" central est établi par une stratégie, et non par une architecture d'outil de contrôle de source.

6voto

Will Robertson Points 19581

Certainement pas vaincre le but de Git.

L'avantage de l'utilisation de Git ou de tout autre DVCS même quand il y a une centrale, un officiel, un référentiel est encore que la source de contrôle est décentralisé. Qui est, vous pouvez prendre votre copie du dépôt, le travail sur votre code, et de faire une validation de quelques minutes si vous avez besoin d'. Vous n'avez pas besoin de s'inquiéter que les commits sont en demi-finis code briser la construction, c'est tous les locaux. (Et très rapide.)

Puis, quand tout le travail est fait, vous pouvez nettoyer l'histoire et de pousser le terminé d'apporter des modifications vers le dépôt central dans un milieu homogène, propre, état.

Je ne pense pas que vous pouvez sous-estimer l'avantage de séparer l'idée de "privé" s'engage et "public" pousse. Il permet des modifications à être suivis même si vous êtes le seul à bénéficier d'une telle petite granularité.

4voto

VonC Points 414372

Si vous cochez cette Présentation de Git, (diapo 475 et suivantes), un référentiel Central Modèle est parfaitement pris en charge par Git.

Vous pouvez peut forcer personne souhaitant git push de son développement, d'abord faire un git fetch + git merge d'abord, puis l'enfoncer.

Qui n'a pas à l'encontre du but de Git à tous, et que tout le monde est synchronisé avec les uns des autres.

La différence avec le Linus est "officiel" référentiel cité par JesperE est qu'elle est gérée par un autre flux de travail, à savoir un "Dictateur et lieutenants" du modèle, où l'accès en écriture (push) n'est accordé que pour Linus, et la lecture sont accordées pour tout le monde.

Maintenant: "est-ce que la défaite du point de DVC" ?

Non, vous avez encore des référentiels distribués, une pour chacune des développeurs, et ils peuvent chercher/de fusion entre leurs propres référentiels, en fonction de leur propre équipe interne de flux de travail.
Cependant, s'ils veulent contribuer à la centrale de pensions, ils ont besoin d'avoir à être le premier à jour avec la dernière histoire de ce référentiel.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X