Почему я получаю конфликт слияния? - PullRequest
3 голосов
/ 24 марта 2019

Я сохраняю свои изменения в тайнике. Добавьте немного кода. Commit.

Когда я пытаюсь применить измененное хранилище, возникает конфликт слияния:

@@@ -847,45 -846,6 +855,53 @@@ do $$ begin RAISE NOTICE 'Move time: 20
  set local my.sys_time to '2018-08-23';

  do $$ begin
++<<<<<<< Updated upstream
 +do $$ begin RAISE NOTICE 'Move time: 2018-08-23'; end $$ language 'plpgsql';
 +set local my.sys_time to '2018-08-23';
 +
 +do $$ begin
 +--TODO: Test UPDATE when NEW.app_period is same as OLD.app_period
 +-- and NEW.app_period is intersect app_period() for some rows
 +--As update behavior should be same for rows where NEW and OLD
 +-- as different as equal (see next test after this one)
++||||||| merged common ancestors
++--TODO: Test UPDATE when NEW.app_period is same as OLD.app_period
++-- and NEW.app_period is intersect app_period() for some rows
++--As update behavior should be same for rows where NEW and OLD
++-- as different as equal (see next test after this one)
++=======
++>>>>>>> Stashed changes
  RAISE NOTICE 'Test UPDATE app_period by 2018-08-17 .. 2018-08-24, when applicatoin perio
    USING HINT =  'Row just updated. Nothing special should happen';
  end $$ language 'plpgsql';

Но почему? Спрятанные изменения ничего не добавляют к тем commented TODO строкам, в которых возникает конфликт.

Ответы [ 2 ]

1 голос
/ 24 марта 2019

Git не предполагает, что два непосредственно смежных блока текста не связаны, потому что они часто связаны между собой. В другом слиянии добавленный вами блок будет комментариями, описывающими функцию, которая была перемещена в другое место или удалена из нее.

0 голосов
/ 25 марта 2019

Конфликт означает, что файл был изменен как минимум дважды, параллельно . Как вилка:

Common ancestor -----> V1
                -----> V2

Вы разрешаете конфликт, упорядочивая изменения , вы помещаете их горизонтально в хронологическом порядке:

Common ancestor --> (V1 + V2) --> V3
                        |          |
                        |          |
conflicted stated after merge      new state after resolved conflict        

Какая часть файла изменяется, не имеет значения, способ изменения файла (параллельный, а не последовательный) создает конфликт.

...