J'ai une grande branche nommée avec beaucoup de changements. Certaines de ces changements sont non destructives, je souhaite donc choisir ces fichiers spécifiques et les fusionner par défaut dès que possible. (Puis plus tard, les changements destructeurs sont également fusionnés.) P>
En Git, je créerais une autre branche et écraserais toutes les modifications à l'extérieur de l'indice, j'ajouterais ensuite les fichiers spécifiques à l'index et de commettre. Après cela, je pourrais fusionner cette succursale temporaire avec Maître afin que Maître ait un engagement propre avec seulement le changement non destructif. Je ne sais pas comment faire cela avec Mercurial. P>
3 Réponses :
Autant que je sache, Mercurial n'a aucun outil pour scinder les modifications. Si vous êtes chanceux, toutes les modifications que vous souhaitez sont dans des modifications distinctes, puis vous pouvez utiliser le transplantextension a>. Je pense que cela peut être comparé au choix de cerisier de Git, mais je n'ai pas utilisé beaucoup de git. Vous pouvez également utiliser HG DIFF pour valider manuellement les modifications apportées à un certain fichier à une nouvelle branche. Utilisez la plage de REV pour marquer votre branche source complète: P> hg diff myfile -r startrevision:endrevision
Puis-je utiliser: HG Rebase - collpe --keekebranes -b
Je n'ai pas utilisé la Rebase pour autre chose que les trucs les plus élémentaires, je vous suggère de lire simplement les docs et de l'essayer à fond sur un repos de test pour déterminer comment cela fonctionne. Et au fait, ce commentaire est une question parfaitement valide (et séparée) à poser ici sur Stackoverflow. =)
Mercurial a une extension pour fractionnement de modifications - elle s'appelle hétérodit. Vous vous engagez juste en modifiant une modification.
Je pense MercurialQuuesues est ce que vous voulez. Avec MQ Vous pouvez transformer n'importe quel changement de contact en un patch et n'importe quel correctif dans une modification. Donc, prenant une modification de la conversion en une plaquette en supprimant les morceaux du patch que vous ne voulez pas, puis de l'appliquer à la branche que vous souhaitez. Ceci est un assez fonctionnement complexe cependant et nécessite une certaine quantité de discipline de votre part. Je vais donc essayer de clouer votre flux de travail sur un repo de test avant de l'essayer sur le code que vous aimez. P>
Merci pour les liens, je vais les vérifier. Pour le moment, je semble avoir trouvé la réponse (voir commentaire ci-dessus).
C'est cool. J'essayais essentiellement de donner une certaine crédibilité à la réponse de Mizipzor en ce qui concerne le MQ Stuff.
Vous pouvez utiliser Ce n'est pas techniquement une fusion, Mais puisque vous remplacez les fichiers entiers, vous ne devriez pas trop avoir trop de choses à fusionner les choses plus tard: p> Par exemple, pour saisir Notez que HG CAT CODE> pour saisir le contenu d'un fichier tel qu'il existe sur une branche particulière et remplacez la version de la copie de travail avec celle-ci.
myfile.c code> Branche formulaire
en quelque chose code> et remplacez la version de la copie de travail, faites: p>
Est-ce que cela répond à votre question? Mercurial: fusionner un fichier entre les branches d'un repo