bzr: восстановление удаленного файла после некоторых коммитов с базаром - PullRequest
9 голосов
/ 26 октября 2009

Я хотел бы знать, возможно ли восстановить удаленный файл из более ранней ревизии (чистый способ сделать это)

Я переименовал файл для некоторых тестов, затем я передал всю свою работу (и я забыл переименовать файл) и сделал много других коммитов ... Когда я понял, было слишком поздно ...

С уважением, Айман

Ответы [ 3 ]

12 голосов
/ 02 ноября 2009

Самый простой способ - просто использовать bzr revert с номером ревизии до удаления файла:

bzr revert -rX path/to/file
bzr commit -m 'Bringing path/to/file back'

Вам не нужно ничего объединять.

4 голосов
/ 27 октября 2009

Если вы знаете номер ревизии при удалении этого файла (вы можете просмотреть историю с помощью bzr log -v), то вы можете воскресить этот файл с помощью команды слияния. Таким образом, для файла foo и номера ревизии N необходимо выполнить команду:

bzr merge foo -r N..N-1

например. для редакции 287:

bzr merge foo -r 287..286

Эта команда восстановит ваш файл, как в ревизии 287. Вам нужно зафиксировать это изменение, и все готово.

0 голосов
/ 26 октября 2009

Это не лучший ответ. Смотрите ответ bialix, который намного проще. Я оставлю это здесь только для справки.


Вот что я считаю самым чистым методом:

  1. Создать ветку:

    bzr филиал mytree repair-path

  2. кд в ремонтную ветку

  3. Восстановить только отсутствующий файл в его последней редакции (например, 287 в этом примере):

    bzr revert -r 287 lost.file

  4. Подтвердить изменение

    bzr commit -m "Unshoot my foot"

  5. cd обратно в основную ветку

  6. слить в ремонт

    путь восстановления bzr слияния

  7. Когда все будет готово, подтвердите слияние и удалите ветку восстановления.

Вы могли бы сделать это, просто вернувшись в исходную рабочую ветку, но, вероятно, это хорошая практика. Вам также нужно немного беспокоиться о любых незавершенных изменениях.

...