Я только что потерял все изменения в патче Mercurial (к счастью, у меня была резервная копия), и я хотел бы выяснить, что пошло не так.Повреждение исправления или потеря после переустановки
установки параметров
У меня была пара патчей, называть их patch1.diff и patch2.diff. Оба они были основаны на ревизии 123, но затрагивали совершенно разные файлы, без перекрытия. Итак, мой репозиторий смотрел что-то подобное в TortoiseHg (где p
является пластырем и r
является регулярным пересмотром):
Graph Rev Branch Tags Message
p 125 develop patch2.diff Change to existing file baz.php
p 124 develop patch1.diff Add new files foo.php and bar.php
r 123 develop Last committed changeset
|
r 122 develop Old changes
...
Что я сделал
Я хотел, чтобы изменить порядок пластырей, потому что мой работа над patch2.diff была завершена, и я хотел зафиксировать эти изменения. Так что я попытался перебазирование, что патч на ревизию 123. Это не сработало, и я в конечном итоге с чем-то вроде этого:
Graph Rev Branch Tags Message
r Working directory - not a head revision!
r 126 develop Change to existing file baz.php
|
p | 125 develop patch2.diff Change to existing file baz.php
|
p | 124 develop patch1.diff Add new files foo.php and bar.php
|
r-+ 123 develop Last committed changeset
|
r 122 develop Old changes
...
Это было явно не так. Теперь у меня была ревизия 126 с теми же изменениями, что и в файле patch2.diff, но у меня также был patch2.diff, который не был переустановлен, как я ожидал. Кроме того, я получал сообщение «не пересмотр главы», хотя на самом деле никаких изменений в моем рабочем каталоге не было.
Так я раздел пересмотр 126. В этот момент, все пошло полностью сошли с рельсов, в результате чего мне с этим:
Graph Rev Branch Tags Message
p 125 develop patch2.diff Change to existing file baz.php
p 124 develop patch1.diff
r 123 develop Last committed changeset
|
r 122 develop Old changes
...
patch1.diff еще появился в TortoiseHg, но уже не были изменения и коммит. Я попытался hg qpush --all
, и получил эти сообщения:
applying patch1.diff
unable to read patch1.diff
Я не мог даже найти patch1.diff на моей файловой системе больше. В конечном счете, мне пришлось запустить hg qdelete --keep patch1.diff
, а затем восстановить мои потерянные изменения из внешних резервных копий.
Я оказался там, где хотел, но почти потерял много часов работы над новой функцией. Я смог восстановить только потому, что у меня была резервная копия новых файлов. Это было ужасно.
Вопрос
Что произошло в мире? Почему я потерял patch1.diff? Я мог понять, потерял ли я изменения в patch2.diff, учитывая то, как я использовал hg strip
, но я понятия не имею, почему patch1.diff получил нук.
Непонятно, что вы хотите задать с этим вопросом. Опишите конкретную цель, которую вы хотите достичь, пожалуйста, – Gargo
@Gargo, почему нисходящий? Этот вопрос был совершенно ясен: я хотел знать, почему мой патч был удален спонтанно. У этого даже есть ответ, объясняющий проблему. Пожалуйста, пересмотреть ваш downvote. –