zHz00
AnkhSVN+MSVS+WinMerge.

Мерджу бранчи. Обнаружились конфликты. Открываю вин-мерджем первый файл. Ресолвю. Сохраняю. Закрываю. AnkhSVN говорит -- вы там как, заресолвили конфликт? Я говорю -- ага, и перехожу к следующему файлу.

Ресолвю следующий файл (самый длинный). Сохраняю. Закрываю. AnkhSVN молчит. Открываю опять редактирование конфликтов. А ТАМ НИЧЕГО НЕ ПРИМЕНЕНО! Для теста внёс одну правку, сохранил, открыл заново -- пропала!

О, это дивное чувство, когда ты делаешь изменения, а они не применяются!

Стал расследовать.

ОКАЗАЛОСЬ, что при трёхстороннем мердже, который происходит при ресолве конфликтов, создаются три файла -- file1.left (read-only, "their file"), file1.right (его можно редактировать, "mine file") и file1.cpp (результирующий). Отображаются только первые два. ОДНАКО, когда происходит сохранение, файл file1.right сохраняется в file1.cpp! Поэтому при каждом открытии я вижу file1.left, в котором изменений нет!

А баг тут в том, что AnkhSVN не "подхватил" то, что я закончил редактирование. Не знаю, почему это произошло несколько раз (потом опять стал отображать). Пока не отображал, я сохранял файл, а потом НЕ ОТКРЫВАЯ КОНФЛИКТ ЗАНОВО помечал, что он заресолвен.

@темы: Борьба с техникой, Программирование, Программы