9
votes

Dans Mercurial, comment choisir des fichiers spécifiques d'une branche nommée pour fusionner par défaut?

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.)

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.


1 commentaires

Est-ce que cela répond à votre question? Mercurial: fusionner un fichier entre les branches d'un repo


3 Réponses :


2
votes

3 commentaires

Puis-je utiliser: HG Rebase - collpe --keekebranes -b -D Il semble placer tous les fichiers modifiés dans mon fil de travail sans les prendre. Est-ce qu'il y a des effets secondaires?


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.



4
votes

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.


2 commentaires

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.



5
votes

Vous pouvez utiliser HG CAT 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.

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:

Par exemple, pour saisir myfile.c Branche formulaire en quelque chose et remplacez la version de la copie de travail, faites: xxx

Notez que remplace complètement le fichier de copie de travail alors assurez-vous de vous n'ont aucun changement exceptionnel d'abord


0 commentaires