TLDR : У меня есть пакет HG с родителем X, но ревизия X не существует в моем репо. Тем не менее, я уверен , что файлы ревизии Y идентичны ревизии X. Как применить комплект?
Справочная информация:
Я использую hgsubversion
для взаимодействия с репозиторием SVN.
Были некоторые изменения, которые я не хотел совершать. hgsubversion
не поддерживает частичные нажатия.
Раньше я обходил эту проблему вручную, создавая временные файлы экспорта / исправления или вручную восстанавливая файлы .orig (результат hg revert
).
В этом случае я зафиксировал изменения, которые я не хотел нажимать, затем использовал hg strip
, затем нажал, затем попытался использовать hg unbundle .hg/strip-backup/file
.
Проблема : hgsubversion
заменяет исходный набор изменений новым, который он импортирует из SVN после его фиксации. Результат: идентификатор набора изменений изменится. Это проблема, потому что теперь hg unbundle
больше не работает, так как зависит от присутствия родительского набора изменений (но он был удален).
По иронии судьбы, hgsubversion
сам использует strip
и, таким образом, имеет файл резервной копии, который я могу использовать, чтобы удалить новую версию, добавить удаленную старую версию, затем применить пакет с моими ревизиями, экспортировать патч, удалить оба и восстановить ревизию SVN. Но это звучит ... чрезвычайно больно и глупо. Что лучше я могу сделать?
(hg transplant
не похоже, что пакет не имеет родителя в репо)