Rozważ znaczniki konfliktu. to znaczy:
<<<<<<< branch
blah blah this
=======
blah blah that
>>>>>>> HEAD
W szczególnym przypadku, który zmotywował mnie do opublikowania tego pytania, odpowiedzialny członek zespołu właśnie zakończył scalenie z wyższego szczebla do naszego oddziału, aw niektórych przypadkach pozostawił je jako komentarz, jako rodzaj dokumentacji dotyczącej tego, co właśnie zostało zdecydowany. Pozostawił go w stanie skompilowanym, testy zdały, więc nie jest tak źle, jak mogłoby się wydawać.
Instynktownie jednak naprawdę sprzeciwiłem się temu, jednak będąc diabłami, które mnie popierają, rozumiem, dlaczego mógł to zrobić:
- ponieważ podkreśla innym programistom zespołów, co zmieniło się w wyniku scalenia.
- ponieważ ci, którzy są bardziej biegli w poszczególnych fragmentach kodu, mogą następnie rozwiązać obawy przedstawione w komentarzach, aby nie musiał zgadywać.
- ponieważ scalanie w górę łańcucha jest właściwym bólem i może być trudne uzasadnienie czasu, aby rozwiązać wszystko dobrze i całkowicie, dlatego konieczne jest pewne niepełne powiadomienie FIXME, więc dlaczego nie wykorzystać oryginalnego konfliktu jako komentarza do udokumentowania tego.
Mój sprzeciw był instynktowny, ale chciałbym móc to racjonalnie uzasadnić lub mądrzej zobaczyć moją pozycję. Czy ktoś może mi podać kilka przykładów, a nawet doświadczeń, w których ludzie źle się z tym robią i / lub powody, dla których jest to zła praktyka (lub możesz wcielić się w adwokata diabła i wesprzeć go).
Moją bezpośrednią obawą było to, że byłoby to irytujące, gdybym edytował jeden z odnośnych plików, wyciągnąłem zmiany, dostałem prawdziwe konflikty, ale także wciągnąłem komentarze. Wtedy miałbym naprawdę bardzo niechlujny plik. Na szczęście tak się nie stało.
// MatrixFrog 10/25/2011: Updated this function to fix bug #1234
. Jeśli widzę takie rzeczy, myślę: „Po co? Po to git blame
jest!”