Considérant la commutation sur Mercurial ou Git? Nous sommes aussi. J'étudie actuellement les avantages des DVC qui se révèlent vastes, luxuriants et doivent. P>
J'aimerais entendre parler des modèles d'utilisation typiques de la communauté. P>
Créons une liste de fonctions de productivité "TOPN N" pour DVCS (basée sur Mercurial, Git ou Alike). P>
Veuillez décrire les flux de travail qui s'avèrent être productifs pour vous / votre équipe, les procédures que DVCS vous a aidé à atteindre / à améliorer, ainsi que de «bonnes choses» émoussées que DVCS vous donne (ne supposez pas que les trucs sont clairs à l'utilisateur novice. ). p>
Je pense qu'une telle liste pourrait aider les gens à s'approcher de l'équipe avec une suggestion de DVCS. P>
Cette question est Wiki communautaire, évidemment. p>
7 Réponses :
L'application "tueur" semble être
La seule caractéristique du tueur réel est ... p>
DVCS (git, mercurial ou autre) sont fabriqués pour la fusion (précisément parce que, en cours de distribution, la fusion est la caractéristique clé permettant à ces outils d'intégrer rapidement le code provenant de divers référentiels distants).
SVN n'est pas à la hauteur de la tâche (même aujourd'hui).
Voir: p>
Séparation de l'engagement de la publication forte> p>
Ceci est important pour les fonctionnalités plus grandes, car cela signifie que l'on peut travailler sur une série de commettre em> pour mettre en œuvre une fonctionnalité (chacun étant petit et autonome, pour faciliter la recherche de bugs en cas d'historique de bisectes) à une satisfaction propre et seulement quand ils sont prêts à les publier. p>
Une variante de cette approche consiste à avoir un référentiel public distinct avec une branche rebasable avec des travaux en cours et d'appuyer (ou d'envoyer une demande de traction) uniquement lorsque la branche est prête pour l'inspection. P>
pour Projets OSS EM>: P>
Premièrement, la plupart des DVCS ont d'excellents outils pour fonctionner avec des correctifs (généralement envoyés par courrier électronique), à la fois pour les créer et les appliquer. Le contributeur peut créer un correctif à l'aide de tous les outils (bien qu'il soit préférable de créer des correctifs avec DVC utilisés par projet, car certains DVC ont mis des informations supplémentaires dans des correctifs) et l'envoyer à la liste de diffusion d'un projet ou directement au mainteneur de projet, ou attachez-la à la demande de rapport de bogue / de fonctionnalité dans un problème de suivi. p>
Deuxièmement, vous n'avez pas besoin commettez le bit em> pour pouvoir contribuer. Il suffit de cloner le référentiel de projets et vous pouvez utiliser la pleine puissance des DVC. Vous pouvez ensuite envoyer des correctifs ou une requête de traction, ou appuyez sur la branche 'mob'; Il existe de nombreuses possibilités. P>
C'est un avantage également pour le (s) responsable (s) de projet (s): il / elle n'a pas à s'inquiéter de savoir qui peut-il faire confiance à "Bitt Bit", c'est-à-dire l'accès au référentiel, comme c'est le cas dans les CVC. Karl Fogel a écrit dans Production de logiciels open source. Comment gérer un projet de logiciel libre réussi. qu'il l'a trouvé mieux pour le projet que des restrictions telles que le contrôle d'accès soient mieux sociales plutôt que technologiques; DVCS prend plus loin, grâce à ne pas avoir décidé de décider de la permission de s'engager. P>
Il semble que pour nous, l'application "tueur" se transformera comme la possibilité de Push Code par étapes forte>. P>
Nous aurons Dev Repo, que tous les Devs poussent dessus.
QA Repo acceptera Push à partir du Dev Repo et construira sa version du code de test. Une fois que les tests sont terminés, ils appuieront le code à la production Rappo (QA Repo est le seul à appuyer sur les modifications apportées au dépo de production) à partir duquel une version «production» sera construite. P>
Ceci est décrit brièvement dans HGGINIT (près du bas de la page) . p>
Je vais mettre à jour ce message une fois que nous avons réellement mis en œuvre la configuration décrite ci-dessus. P>
Je viens de lire ma réponse ... bien pour les rires: nous avons décidé d'aller continuer-intégration (CI). Cela signifie que nous n'avons que 1 repo et poussons des changements directement dans la production. Utilisant toujours mercurial évidemment mais non dev -> qa -> barrières de production :) / moi: heureux.
avec VCS centralisés comme Subversion, la seule chose que vous puissiez faire lorsque l'Offline est Edit Stuff. Certains systèmes donnent un accès limité à d'autres fonctionnalités (par exemple dans Subversion, vous pouvez différer et revenir à la dernière version du repo), mais la plupart de ce qui rend VCS utile, c'est P>
n'est possible que si vous êtes connecté au serveur central. P>
Avec un DVCS, toutes les opérations ci-dessus fonctionnent localement, et si quelque chose doit aller dans le serveur central, vous pouvez toujours le pousser là-bas plus tard, lorsque vous êtes à nouveau en ligne. P>
Bien que cela soit probablement sans importance si vous êtes toujours en ligne (tel que sur le bureau), il peut être essentiel si vous devez souvent travailler hors ligne, comme lors de votre voyage ou à la maison avec une connexion floconneuse. P>
J'ai commencé à utiliser GIT spécialement parce que je travaille souvent sur la route et que je n'ai généralement pas de connexion (fiable). p>
Partage de changements avec d'autres sans publication forte> p>
Pour moi, l'application Killer, quand j'étais une grande équipe, était capable de travailler avec d'autres ingénieurs, de partager des modifications, sans avoir à passer par le serveur central. Cela signifiait que nous pourrions partager des fonctionnalités inachevées de manière contrôlée (c'est-à-dire non "Copier ce fichier de mon arborescence") et tout vient de travailler. P>
Peut être lié à: