2009-05-05 4 views
2

Я установил Darcs несколько дней назад и сомневаюсь. Я единственный программист, и я обычно работаю над двумя или тремя экземплярами приложения, создавая новые функции. Проблемы возникают из-за того, что эти экземпляры изменяют один и тот же файл исходного кода, поэтому, когда я закончил их и отправлю в основной репозиторий, они создают конфликт. Есть ли способ справиться с этим? Могу ли я написать один и тот же файл в нескольких экземплярах без конфликта при нажатии в основной репозиторий? спасибоDarcs conflict

ответ

5

Прежде всего, когда изменения происходят в разных местах файла, при слиянии обычно нет конфликтов. Когда два патча могут быть объединены без конфликтов, говорят, что они коммутируют. В вашем случае бывает, что вы изменили одну и ту же часть файла в двух разных ветвях. В этом случае darcs не позволяют вам «нажимать» второй патч, который создает конфликт.

Существует два способа разрешения такого конфликта, но вы должны начать локально объединять оба патча, чтобы получить конфликт в своем рабочем репо. Для этого просто вытащите патчи из основного хранилища. Затем вам нужно отредактировать обиженный файл и разрешить конфликт.

Первый способ - это простое и предпочтительное решение, вы должны «изменить запись» патча, который еще не находится в главном репозитории (посмотрите на использование команды «darcs modify-record»).

Другое решение - записать патч разрешения, вызвав «запись darcs», а затем нажав как конфликтующий патч, так и патч разрешения. Это решение имеет тенденцию усложнять историю и может сделать некоторые более поздние операции дольше. Однако, когда ветвь была сильно распределена, это решение становится необходимым.

Смежные вопросы