Mercurial: восстановить файлы
Я хотел бы восстановить файл, который был удален в некоторой фиксации, и восстановить его под другим именем, чтобы он делил историю. В подрывной деятельности я сделал бы
svn cp [email protected] dest
то есть. используйте изменения привязки. Что эквивалентно в Mercurial?
Ответы
Ответ 1
Я не думаю, что у Mercurial есть встроенный способ сделать это. Но я думаю, что вы можете получить тот же эффект через:
hg up -C REV # Update to revision containing a copy of the file
<modify the file in question>
hg commit # Create second head based on old revision
hg merge # Merge two heads into one
# Note: make sure to choose to have the file exist
hg commit
hg mv MYFILE MYNEWNAME
У этого файла будет сохранена вся старая история, так как Mercurial может отслеживать его.
Ответ 2
Не просто (если вы "hg remove
" d src в REV + 1):
hg revert -rREV src
hg status
A src
hg rename src dest
hg commit -m"restored src and renamed it to dest"
работа?
отредактировано. Я только что протестировал его, и, похоже, все в порядке. На самом деле для src не требуется "hg add
", так как revert заботится об этом. Однако, если вы выполняете только одну фиксацию вместо двух (например, в приведенном выше коде), hg выдаст предупреждение:
src еще не зафиксирован, поэтому нет копии данных будут сохранены для dest.
Надеюсь, что это поможет.