Czy istnieje sposób na sprawdzenie, czy dwa różnice lub poprawki są równoważne?Czy istnieje sposób porównania dwóch różnic lub poprawek?
Powiedzmy, że masz następujące git commit historię, gdzie dysponuje F i G są czysto rebaseable do E:
G
/
A--B--C--D--E
\
F
Ze względu na ograniczenia w naszym obecnym procesie wdrażania, mamy następujące, nieco pokrewny wykres (nie jest wersja kontrolowane)
G'
/
------------E'
\
F'
F „i G” ostatecznie zostaną zastosowane do głowicy E”w niektórych być określona kolejność tak, że kończy się ona jak
------------E'--G'--F'
Czy istnieje sposób na sprawdzenie, czy różnica z E 'na G' jest taka sama, jak łata wygenerowana przez zatwierdzenie git G z B?
W pełni zdaję sobie sprawę, że w idealnym świecie kontrola wersji rozwiązałaby ten problem, a my do tego dojdziemy, ale to nie jest miejsce, w którym obecnie się znajdujemy.
Można zasadniczo odtwarzać obie łatki na oddzielnych kasach i porównywać wyniki, ale wydaje się to dość niezgrabne. Porównanie samych diffów nie przyniesie skutku, ponieważ numery linii mogą się zmienić. Nawet jeśli G 'i F' byłyby ponownie wyeksportowane do E ', łatka dla F' ostatecznie byłaby zastosowana do G ', czyniąc różnicowy kontekst łatki inny.
Próbowałaś diff na dyferencjału? – Geoffroy
Gnu diff ma przełącznik wiersza poleceń do określania wyrażenia regularnego dla linii, które mają być ignorowane podczas generowania diff. – holygeek
Dla partii, 'git patch-id' i' git cherry' (zobacz także opcje '--cherry *' dla logu git) mogą być użyte jako szybka odpowiedź, ale jest zbyt rygorystyczna i może uważać pewne drobne zmiany za ważne. Różnica różnic jest sposobem, aby przejść, gdy potrzebujesz pewnej odpowiedzi – max630