У меня есть файл before.txt
, который я хочу разделить на два файла поменьше.То, что я должен был сделать, было
$ hg cp before.txt part1.txt # Then edit part1.txt
$ hg mv before.txt part2.txt # Then edit part2.txt
$ hg commit
Тогда и part1.txt, и part2.txt будут иметь before.txt как часть своей истории, поэтому diff будет отображаться как удаление частей.файла большего размера, вместо удаления одного файла и создания нового с некоторым его содержимым.
Однако, на самом деле я сделал
$ cp before.txt part1.txt # Then edit part1.txt
$ hg mv before.txt part2.txt # Then edit part2.txt
$ hg commit
Так что before.txt присутствует тольков истории одного из моих двух файлов.Если бы я не запустил hg commit
, мне кажется, что я мог бы решить свою проблему с помощью
$ hg cp --after before.txt part1.txt
или чего-то подобного.И я не продвигал этот коммит вверх по течению, поэтому я должен иметь возможность редактировать его так, как мне нравится.Но я не могу понять, как это сделать.Когда я запускаю этот hg cp
, я вижу:
$ hg cp --after before.txt part1.txt
before.txt: No such file or directory
before.txt: No such file or directory
abort: no files to copy
Это имеет смысл: он не может записать это редактирование как часть нового коммита, потому что исходный файл не существует.Я хочу записать его как часть предыдущего коммита, но я не знаю, как это сделать, кроме как записать его как часть нового коммита и затем amend
вставить в предыдущий коммит.