Vous êtes ici :
Prévention des conflits potentiels en combinant des éléments de travail
Empêchez les conflits potentiels pendant le processus de promotion en combinant des éléments de travail qui partagent des composants de métadonnées. Dans certains cas, le référentiel de contrôle de source ne peut pas déterminer comment reconcilier les modifications dans le même composant de métadonnées. Parfois, la promotion est bloquée par une dépendance avec un composant partagé. N’ayez aucune crainte, le Centre DevOps détecte les composants partagés et vous permet de promouvoir vos modifications en toute confiance dans le pipeline de publication.
Dans le Centre DevOps, les éléments de travail peuvent seulement avancer dans le pipeline. Lorsqu'un élément de travail a été promu à la première étape du pipeline, vous ne pouvez pas l'annuler ou changer le statut sur Jamais. Vous ne pouvez pas abandonner un élément de travail dans une étape du pipeline. Par conséquent, tous les éléments de travail doivent être déplacés dans le pipeline pour que toutes les branches d'étape du pipeline et leurs environnements correspondants soient synchronisés. Bien que le déplacement des modifications que vous ne souhaitez pas suivre dans le pipeline de publication semble contre-intuitif, la combinaison d'éléments de travail fusionne toutes les modifications pour obtenir les résultats souhaités.
Modifications fusionnées en externe
Si vous avez déjà fusionné en externe l'un des éléments de travail avec des composants partagés avec la branche cible, nous ne pouvons pas combiner. Terminez la promotion, corrigez le conflit (si nécessaire), puis déployez les autres éléments de travail.
Pour plus d'informations sur le traitement des fusions externes dans le DevOps Center (bêta) de nouvelle génération, voir External Merges (Fusions externes).
Scénarios courants
Par exemple, vous découvrez un bogue pendant un test ou les exigences changent. Vous créez un autre élément de travail qui modifie le composant comme vous le souhaitez, puis promouvez cette modification à travers le pipeline. Cependant, le référentiel de contrôle de code source ne connaît pas votre modification, ce qui entraîne un conflit. Pour résoudre le conflit afin de terminer la promotion, vous pouvez combiner des éléments de travail qui partagent des composants. Pendant le processus de combinaison, les modifications sont fusionnées. La toute dernière version du composant, avec les modifications requises, « gagne » et progresse.
Dans un autre scénario, vous avez deux éléments de travail : une élément crée un objet et un autre qui modifie l'objet, par exemple en ajoutant ou en supprimant un champ. Si vous tentez de promouvoir l'élément de travail avec la modification avant de le promouvoir avec l'ajout, la promotion est bloquée en raison de la dépendance entre les éléments de travail. La branche de l'étape du pipeline suivante ne connaît pas le nouveau composant, ce qui entraîne une erreur, car elle ne peut pas fusionner une modification dans un élément inexistant dans sa branche.
Lorsque le Centre DevOps détecte un conflit potentiel dû à des éléments de travail qui partagent des composants ou qui contiennent des dépendances, il permet de combiner les éléments de travail pour poursuivre la promotion.
La combinaison d'éléments de travail fusionne leurs branches de fonctionnalité en une seule, ce qui évite les conflits en aval. Si vous ne combinez pas les éléments de travail, vous allez probablement devoir résoudre manuellement les conflits ou promouvoir d'abord les éléments de travail dépendants afin d'éviter les échecs de promotion.
Lors de la combinaison d'éléments de travail, les composants de métadonnées de tous les éléments de travail sont combinés, pas seulement les modifications qui affectent les composants partagés. Pour de meilleurs résultats, suivez les meilleures pratiques du DevOps en limitant au maximum l'étendue de vos éléments de travail, en incluant uniquement les modifications associées.
| Scénario | Que se passe-t-il lorsque le Centre DevOps combine des éléments de travail |
|---|---|
| Vous essayez de promouvoir plusieurs éléments de travail qui partagent des composants. Vous avez sélectionné tous les éléments de travail qui partagent des composants dans la branche de l'étape. | Le Centre DevOps combine les modifications dans la branche de fonctionnalité du dernier élément de travail. La dernière version du composant est utilisée lorsque les modifications sont fusionnées. |
| Vous essayez de promouvoir plusieurs éléments de travail qui partagent des composants, mais vous n'avez pas sélectionné tous ces éléments de travail qui partagent des composants dans la branche de l'étape. | Le Centre DevOps combine toutes les modifications des éléments de travail qui contiennent des composants partagés, même si vous n'avez pas initialement sélectionné ces éléments de travail pour la promotion. Le Centre DevOps combine les modifications dans la branche de fonctionnalité du dernier élément de travail. La dernière version du composant est utilisée lorsque les modifications sont fusionnées. |
| Vous essayez de promouvoir plusieurs éléments de travail qui partagent des composants, et l'un des éléments de travail a une dépendance à un autre élément de travail. Par conséquent, la promotion est bloquée. Cette dépendance entraîne une erreur de rebase dans le système de contrôle de code source. | Le Centre DevOps combine les modifications des éléments de travail dépendants dans la branche de fonctionnalité du dernier élément de travail. La dernière version du composant est utilisée lorsque les modifications sont fusionnées. |
Les éléments de travail sont combinés dans l'ordre de création. Nous commençons par l'élément de travail le plus ancien, nous appliquons les modifications du deuxième élément de travail, et ainsi de suite, jusqu'à la fusion des modifications de l'élément de travail le plus récent. Pour des composants partagés, les métadonnées résultantes sont une accumulation de toutes les modifications (engagements), qui sont maintenant reflétées dans le référentiel du contrôle de code source, dans la branche de fonctionnalité d'un élément de travail unique (le dernier élément de travail). Le Centre DevOps retire les branches de fonctionnalité d'élément de travail désormais obsolètes des anciens éléments de travail du référentiel du contrôle de code source.
Liste d'éléments de travail
Les éléments de travail combinés à d'autres éléments ont un statut Combiné (1) dans la liste Éléments de travail. Le dernier élément de travail avance avec le statut Promu (2).
Historique des activités des éléments de travail
Le Centre DevOps capture les détails des éléments de travail combinés dans leur historique des activités. Dans cet exemple, WI-000010 a été combiné dans WI-000011. L'historique des activités de WI-000011 inclut l'icône Fusion de
en regard du numéro de l'élément de travail pour identifier que cet élément de travail a été combiné à un ou plusieurs éléments de travail (1). Vous pouvez observer :
- Une dépendance a entraîné une erreur de rebase qui bloque sa promotion (2).
- L'élément de travail a été combiné à WI-000010 (3).
- La combinaison et la promotion ont réussi (3).
Étapes du pipeline
Après une combinaison et une promotion réussies, l'élément de travail avance vers la première étape du pipeline en utilisant le numéro du dernier élément de travail. Vous pouvez identifier un élément de travail combiné par l'icône de fusion
.

