Je suis dans une petite équipe distribuée à l'aide de Mercurial pour un référentiel central. Nous l'avons chacun cloné via SSH sur nos propres boîtes Linux. Notre intention est de passer en revue les travaux de chacun avant de pousser les changements vers le référentiel central, afin de maintenir la pointe du centre propre. Quel est un bon moyen de partager le code entre développeurs sur différentes boîtes de Linux? Je suis nouveau sur Mercurial. Les options que je peux penser de (en la lecture, pas d'expérience) sont les suivantes: p>
1: L'auteur déclenche tous les changements locaux et met à jour le clone de travail avec la pointe de la centrale. L'auteur utilise le forfait HG, s'il existe un moyen de spécifier les REV locaux à inclure dans le paquet. (Une expérience m'a montré que «Bundle» ne fait que saisir des changements non engagés, même s'il y a des commits locaux précédents que Central ne sait pas à propos de) l'auteur reçoit le fichier de paquets à l'examinateur. Le critique crée un nouveau clone propre de la pointe de Central et importe le forfait dans ce clone. ou, p>
2: Après l'auteur et le critique Extraction de la pointe centrale, l'auteur utilise le correctif et le critique importe le patch. ou, p>
3: L'auteur pousse à l'examinateur ou au critique tire de l'auteur (mais comment, exactement? Ce que je lis n'est que sur la poussée et la tirage vers / depuis le référentiel d'origine servi, et / ou sur la même boîte au lieu de différentes boîtes Linux .) p>
4: Oubliez l'examen du code avant de pousser jusqu'au centre; Allez-y et poussez, en utilisant des balises pour identifier ce qui a été examiné ou non, et utilisez Hudson (déjà fonctionnant) pour marquer la dernière version sécurisée afin que les membres de l'équipe puissent savoir lequel tirer de. P>
Si votre équipe utilise des critiques de Code Mercurial et, comment obtenez-vous le critique pour voir vos modifications? P>
3 Réponses :
La plupart d'entre eux sont possibles, certains sont plus fastidieux que d'autres. P>
- base code>:
HG Bundle - Base 4A3B2C1D Avis.Bundle Code> Li>
- pourrait aussi bien utiliser un paquet. De cette façon, les données de la modification sont également incluses. LI>
- Vous pouvez pousser (et tirer) à (de) tout référentiel qui possède un ancêtre commun (s). Si vous voulez tirer de l'un de vos collègues, ils doivent simplement exécuter
hg servir code> sur leur machine et vous pourrez tirer. Li>
- Cela fonctionne également, mais vous devrez maintenir plusieurs têtes et faire attention à la fusion. Si vous ne le faites pas, il peut devenir facile de baser un changement stable sur une modification insuffisante, ce qui permettra de défaire de manière difficile si vous devez corriger cette modification irréfléchie ultérieurement. LI>
ol>
des options que vous avez présentées, les n ° 1 et les n ° 3 sont probablement plus faciles, selon que vous puissiez rejoindre ou non les cases de l'autre. P>
sur une note connexe: c'est la question qui a obtenu mon collègue et j'ai commencé à développer kiln , notre (Fog Creek's ) Outil d'examen de la mercuriale et d'examen de code. Notre plan, et le prototype initial, garderait plusieurs référentiels autour, un référentiel central »et un groupe de référentiels" revue ". Le processus de révision serait lancé en clonant le repo central dans une revue Repo sur le serveur, puis en exécutant une diffusion complète difforme entre les deux, avec une interface Web simple pour obtenir et visualiser les diffs. P>
Nous avons évolué ce flux de travail un peu, mais l'idée générale, ayant une succursale qui reproduise à apporter des modifications irrégulières et une interface pour les examiner avant de les repousser dans le repo central, est toujours la même. Je ne veux pas faire de la publicité ici, mais je recommande en lui donnant un essai < / a>. p>
J'apprécie que vous avez donné une réponse complète au lieu de simplement faire une prise de produit, car l'utilisation d'une hébergement externe n'est pas une option dans ce cas.
La moitié réponse à cette question utilise Reviewboard avec extension mercuriale . Il permet de pousser certaines révisions pour examen en émettant la commande suivante p>
Conseil HG PosTreview P> blockQuote>
Je vais ajouter une 5ème option - Tous les travaux de développement sur les branches nommées, de préférence une par tâche. Permettez à quelque chose d'être attaché à une branche «développement» nommée, qu'il s'agisse d'un état de travail ou non. P>
Appuyez sur le référentiel central, demandez à Reviewer Tirez la branche. Effectuer la critique sur la branche. P>
Lorsque l'examen est passé, fusionnez le travail de développement dans la branche de fonctionnalité appropriée. P>
Ce flux de travail, qui est (pour moi) étonnamment impopulaire, présente de nombreux avantages: P>
Tous les travaux sont engagés - vous n'êtes pas obligé d'attendre qu'un examen soit effectué avant de vous engager. P> LI>
Vous n'entraînerez pas la mauvaise version. Vous ne construisez jamais à partir de la branche de fonctionnalité. P> li>
travaux en cours n'interfère pas avec d'autres développeurs. P> li>
de la succursale de développement, vous pouvez rechercher les dernières modifications (par exemple, les modifications des commentaires d'examen), comparez avec le point de succursale ou comparez avec la dernière branche de fonctionnalités - toutes peuvent fournir des informations utiles. p> li> ol>
Peut-être que cette question pourrait aider? Stackoverflow.com/questions/851583/... < / a>