Hg: Как переместить файлы (в подпапку) без потери истории?
Как перемещать файлы (в подпапку), не теряя их истории?
В моем репозитории Mercurial (я имею в виду папку с .hg) у меня есть MyProject/папка со всеми файлами проекта. Теперь мне нужно создать src/папку внутри и переместить туда все файлы (от MyProject/ до MyProject/src/). Как я могу это сделать, не теряя всю историю?
Ответы
Ответ 1
hg mv
делает правильные вещи, но hg log
не перечисляет записи за ходом, если вы не
дайте ему опцию -f
. См. Этот вопрос для получения дополнительной информации
Почему "hg mv" (mercurial) по умолчанию не перемещает историю файла?
После этого вы, скорее всего, захотите добавить опцию -f
в hg log
в файл hgrc для репо.
.hg/hgrc
[defaults]
log = -f
Ответ 2
Поскольку у вас есть тег "tortoisehg", я решил, что объясню, как я это делаю с помощью графического интерфейса.
Обычно я просто переименовываю/перемещаю файлы в своей среде IDE или из обозревателя Windows, а затем, когда я перехожу к фиксации, THG покажет кучу (?) неизвестных файлов и (R) удаленных файлов. Просто щелкните правой кнопкой мыши по любому из файлов и выберите "Обнаруживать переименования...", затем нажмите кнопку "Найти переименования".
Возможно, вам придется настроить слайдер "Минимальное сходство", пока не получите все нужные файлы и только файлы, которые вы хотите, но обычно это очень просто.
Ответ 3
В Windows с установленным Tortoise HG существует расширение оболочки Windows, которое прекрасно справляется с этим.
В проводнике Windows просто щелкните правой кнопкой мыши и перетащите файлы (файлы), которые вы хотите переместить в папку назначения. Затем вам предлагается всплывающее окно, которое дает вам следующие варианты:
HG Переместить версии (-ы) версии здесь
HG Копировать версии (-ы) здесь
Ответ 4
Используйте hg mv
, чтобы переместить ваши файлы, а затем используйте hg log -f
(следовать), чтобы просмотреть историю, включая переименования.