Рассмотрим следующий многомодульный проект (в пределах одного репозитория):
Module A (i.e. parent)
- Module 1 (various core stuff)
- Module i
- Module 2 (non-core, depends on 1)
- Module ii
- Module iii
(Причина такой установки в том, что она позволяет некоторым разработчикам просто работать над отдельными модулями (например, * 1004).* и его дочерние элементы), в то время как другие разработчики могут работать над всей кодовой базой (например, A
и его дочерние элементы).
Давайте теперь предположим, что Module ii
был переклассифицирован в core
и нуждается вчтобы быть перемещенным в Module 1
.
Я мог бы просто обработать это, переместив Module ii
из Module 2
в Module 1
. Однако, Mercurial обрабатывает это как удаление (из 2
) и добавление (в 1
), и, таким образом, мы потеряли бы историю изменений с ii
до переезда (я знаю, что на самом деле мы не «потеряем» это, так как она все еще будет доступна в Mercurial; однако, она не будетбыть легкодоступным по отношению к файлам в новом месте).
Как я могу переместить файлы и заставить Mercurial переместить историю изменений с этими файлами?