У меня есть хранилище Mercurial с четырьмя ветками в нем. Одна - «общая» ветвь, остальные три - «специфические» ветви, которые состоят из косметических изменений, примененных к общей ветви. Одно из этих косметических изменений состояло в переименовании некоторых файлов.
Таким образом, общая ветвь имеет «file.txt», а первая определенная ветвь имеет «file-01.txt», который является тем же файлом, используемым для той же цели , но имеет другое имя и немного другое содержание. Он был переименован в file-01.txt в определенной ветви, и «hg log -f file-01.txt» правильно показывает историю, возвращающуюся до переименования.
Когда я делаю изменение в file.txt в общей ветке, мне нужно иметь возможность объединить это изменение в file-01.txt в конкретной ветке. Но Mercurial не понимает, что файлы одинаковы. Это говорит мне:
удаленный измененный файл .txt, который локально удален
использовать (с) зависшую версию или оставить (д) выбор?
Если я выберу «c», то получу новый файл file.txt, содержащий именно то, что находится в версии общей ветки. Если я выберу «d», то изменение вообще не будет объединено.
Что я могу сделать, чтобы понять это правильно?
РЕДАКТИРОВАТЬ: я могу заставить его работать правильно в новом тестовом репозитории, но не в моем реальном репо. Вот что я получаю (обратите внимание, что версия 118 находится в конкретной ветке, непосредственно перед исходным переименованием, поэтому я снова прохожу процесс переименования для иллюстрации):
C: \ ...> hg update -C 118
0 файлов обновлено, 0 файлов объединено, 0 файлов удалено, 0 файлов не разрешено
C: \ ...> hg merge default
объединение file.txt
объединение anotherfile.txt
0 файлов обновлено, 2 файла объединено, 0 файлов удалено, 0 файлов не разрешено
(объединение веток, не забудьте зафиксировать)
Так что работает без переименования. Но если я переименую, произойдет сбой:
C: \ ...> hg update -C 118
2 файла обновлено, 0 файлов объединено, 0 файлов удалено, 0 файлов разрешено
C: \ ...> hg переименовать file.txt file-01.txt
C: \ ...> hg commit -m "переименован"
создал новую голову
C: \ ...> hg merge default
удаленный измененный файл .txt, который локально удален
использовать (в) зависшую версию или оставить (д) в избранном?
РЕДАКТИРОВАТЬ 2: Вот что я получаю на последнем шаге из hg merge --debug default
:
поиск копий обратно на оборот 115
несопоставленные файлы в локальной сети:
Файл-01.txt
все найденные копии (* = объединить,! = расходящиеся):
file-01.txt -> file.txt
проверка переименования каталогов
разрешение манифестов
перезаписать Нет частичное Ложь
предок 9d979018c2df локальный f842fdbc252b + удаленный 05fc75e480da
anotherfile.txt: версии отличаются -> m
удаленно изменил файл .txt, который локально удалил
использовать (с) зависшую версию или оставить (д) выборным?