7
votes

Comment détecter le conflit entre deux référentiels GIT.

Pour mettre en œuvre GitHub comme Fourchette / Demande de traction dans mon projet, la fonction de fusion automatique doit détecter un conflit entre le référentiel source / cible à chaque fois lors de la visualisation de la requête de traction.

Une solution vient à moi consiste à analyser la sortie «Demande-Demande GIT». Y a-t-il une méthode plus facile pour détecter le conflit?


2 commentaires

Qu'est-ce qui est demandé ici? Mise en œuvre un outil de fusion? Ou un outil de visualisation différent? Ou simplement curieux ce que git pousser va faire?


Dans GitHub, une demande de traction sans conflit peut être fusionnée simplement en cliquant sur un bouton sur le Web. Étant donné que le référentiel source / cible pouvait continuer à s'engager, une détection de conflit est un must dans ce processus. Je demande un moyen plus facile de détecter le conflit.


4 Réponses :


3
votes

J'ai supprimé ma réponse précédente, je n'ai pas compris la question ...

Voici la nouvelle réponse brillante: xxx

s'il n'y a pas de conflit , cela fera une fusion. Avec un conflit, il vous donne un message: pas possible pour avancer rapidement . Le code de retour de la console (echo $?) Est de 128 dans cette situation.


1 commentaires

Cela n'est pas pertinent beaucoup à la question, mais c'est bon pendant la fusion après avoir récupéré.



0
votes

Autant que je sache, vous ne pouvez pas savoir si une fusion produirait des conflits jusqu'à ce que vous fusionniez ces branches.

Ceci a déjà été signalé dans: Comment tester une fusion sans fusionner en premier .

Ainsi, pour répondre à votre question, si vous devez implémenter ce type de fonctionnalité, vous devriez probablement essayer de fusionner votre source / cible et votre annulation de la fusion (à l'aide de GIT RESET --HARD ).

Je n'ai jamais utilisé Demande GIT-Pull , mais en regardant la sortie, je ne vois aucune information qui pourrait vous aider à résoudre votre problème. Vous pouvez probablement obtenir le même résultat en utilisant git d diff , git wtf , git distant montrage .

Références:


0 commentaires

-1
votes

Enfin j'ai écrit ma propre fonction pour détecter le conflit.

Il est assez simple, il suffit de chercher toutes les lignes de diff et de comparer s'il y a les mêmes modifications.


1 commentaires

Ce serait génial de le poster ici pour une référence future



1
votes

Nous avons créé un détecteur de git-conflit qui vérifie la dernière commission poussée vs toutes les branches existantes.

C'est un script unique simple qui est initié par GitHub Webhook URL et même savoir avoir envoyé une notification HICHAT lorsque le conflit est détecté.

Nous basé notre solution sur l'analyse du git git fusion - peu sortie comme vous pouvez le voir ici

Nous avons ouvert la source, tout peut donc apprécier, apprendre et contribuer.


0 commentaires