概要
Mercurial (以下hg)には、履歴を改編する為のhisteditという拡張がある。履歴を見易く綺麗にするには便利なのだが、うっかり「やらかして」しまったので、その顛末について残しておく。
やらかした内容
- 関連のあるchangesetをまとめるためにhg histeditを実行した
- 順序を変える必要があるのを忘れてうっかりeditor (vim)を終了
- commit logの変更に進んでしまい、そこで:q!を実行してabortしたつもりがhisteditが実行された
復旧の手順
- hg unbundleを使い、histeditを実行した際に保存されているbackup (bundle file)から復旧する
- 実行するとheadsが2つに増えた。この状態でhisteditは使えないので、一旦rebaseして履歴をlinearにする
- histeditを改めて実行して、commitを意図した順に並び換えた上で、不要なcommitをdrop
最後に
- やらかしても慌てない
- 自動backupと、hg unbundleは救世主 (間違ってstripした場合とかも戻せる)
0 件のコメント:
コメントを投稿