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

StackOverflow https://stackoverflow.com/questions/460502

  •  19-08-2019
  •  | 
  •  

Question

Si vous êtes dans un environnement corporate avec de nombreuses personnes travaillant sur une application particulière, cela va-t-il à contre-courant d'un système de contrôle de version distribué pour disposer d’un référentiel central officiel?

Parfois, j'ai du mal à comprendre le concept d'un système de contrôle de version distribué tel que GIT dans un environnement d'entreprise. Si vous n’aviez pas de référentiel central, ne serait-ce pas un PITA de déterminer qui doit extraire la dernière version mise à jour, qui a la fonctionnalité x ou la correction de bogue y que tout le monde doit récupérer, etc., etc.

Est-il contraire à l'objectif de GIT de l'utiliser de la même manière que SVN , avec un référentiel central que tout le monde insère / extrait? Chaque fois que je pense à faire cela, j'ai l'impression de rater le but de tout.

Quelqu'un pourrait-il m'éclairer?

Était-ce utile?

La solution

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 a aussi un dépôt central, celui à partir duquel le dossier "officiel" les versions de noyau sont créées, mais il n’ya pas de différence physique entre le référentiel central "officiel", et les référentiels clients, comme dans le VCS centralisé.

Autres conseils

Vous réfléchissez probablement dans le sens de ce diagramme:

alt text

Cela ressemblera probablement à du chaos provenant d'un CVCS. "Nous avons besoin d’un ordre", je vous entends dire?

  

Si vous ne disposiez pas d'un référentiel central, ne seriez-vous pas un PITA pour déterminer qui devait disposer de la dernière version mise à jour, qui a la fonctionnalité x ou la correction de bogue y que tout le monde doit récupérer, etc. .

Oui. Contrairement à un CVCS Il n’ya pas vraiment de & # 8220; dernière version & # 8221 ;. S'il n'y a pas d'emplacement central, vous ne savez pas immédiatement s'il faut voir Sue, Joe ou Eve pour obtenir la dernière version. Un emplacement central permet de clarifier ce que le dernier & # 8220; stable & # 8221; la libération est.

Quelque chose d'un peu plus comme ça:

alt text

Il convient également de noter qu’il pourrait y avoir plus d’un référentiel central perçu en fonction des attributions de groupes de personnes au sein d’une organisation.

Imaginez un chef de projet qui gère plusieurs équipes de développement, chaque équipe pouvant disposer d’un "central". référentiel auquel ils poussent. Chaque semaine, le chef de projet pourrait transférer les modifications de chaque équipe dans son dossier "central". référentiel, fusionnez-les et repoussez-les vers le répertoire "central" de ses équipes. référentiels.

Ce n’est probablement pas un bon exemple (je suis encore en train de comprendre tout cela), mais ce n’est qu’un chef de projet. Ajoutez quelques projets / gestionnaires et l’équipe d’assurance qualité, vous verrez peut-être d’où je viens.

-

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

N'éliminez absolument pas le but de Git.

L’avantage d’utiliser Git ou tout autre DVCS même s’il existe un référentiel central, officiel, est toujours que le contrôle de source est décentralisé. Autrement dit, vous pouvez prendre votre copie du référentiel, travailler sur votre code et effectuer un commit local toutes les quelques minutes si vous en avez besoin. Vous n'avez pas à vous inquiéter du fait que les commits sont sur un code à moitié fini qui casse la construction, c'est tout local. (Et très vite.)

Ensuite, lorsque tout le travail est terminé, vous pouvez nettoyer l'historique et transmettre les modifications apportées au référentiel central dans un état homogène et propre.

Je ne pense pas que vous puissiez sous-estimer l’avantage de séparer l’idée de "privé". commits et "public" pousse. Il permet de suivre les modifications même si vous êtes le seul à bénéficier d’une granularité aussi réduite.

Si vous cochez cette Présentation de Git , (diapositive 475). et suivants), un modèle de référentiel central est parfaitement pris en charge par Git.

Vous pouvez forcer toute personne souhaitant git pousser son développement à créer d'abord un git fetch + fusion Git , puis à appuyer sur.

Cela n'empêche en aucun cas le but de Git et garantit que tout le monde est "synchronisé" les uns avec les autres.

La différence avec le "fonctionnaire" de Linus Le référentiel mentionné par JesperE est qu'il est géré par un flux de travail différent, à savoir un "dictateur et lieutenants". modèle, où l’accès en écriture (push) n’est accordé que pour Linus et où la lecture est accordée à tout le monde.

Maintenant: "est-ce que cela fait échec au point de DVC" ?

Non, vous avez toujours des référentiels distribués, un pour chaque développeur, et ils peuvent extraire / fusionner entre leurs propres référentiels, en fonction de leur propre flux de travail d'équipe interne.
Cependant, s'ils souhaitent contribuer au référentiel central, ils doivent d'abord être au courant des dernières versions de l'historique de ce référentiel.

L'un des principaux avantages de DVCS est que vous pouvez obtenir la dernière version à partir du référentiel "officiel" pour ensuite vous aventurer avec. Vous pouvez valider les modifications localement et les restaurer à volonté. Cela signifie également que vous pouvez même travailler sans accès au référentiel central tout en bénéficiant du contrôle de code source.

Je pense qu'avec un peu de discipline, le modèle fonctionne très bien. Cet article explique bien les différents modèles que vous pourriez adopter

.

DVCS, comme Git, ne vous oblige pas à utiliser un référentiel central. Bien sûr, il est possible de déclarer un référentiel comme & # 8220; central & # 8221; ou & # 8220; officiel & # 8221; Ou quoi que ce soit, et dans un contexte d’entreprise, un référentiel central a un sens, si ce n’est pour le développement, du moins à des fins de sauvegarde.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top