bzrで間違ってuncommitしてしまったリビジョンを元に戻したいとき
DRTL
bzrtoolsをインストールし、bzr heads --all コマンドでrevidを特定し、bzr pull . -r revid:[戻したいrevid]でできる。
詳細
( https://bzrinit.com/05.html#ununcommit の情報を補足した記事です。日本語での情報が見つからなかったため書きました)
以下のようにuncommitしてしまった例で話を進めます。
まず最初にリビジョンが1,2,3と3つあったとします。
概念図:「1 → 2 → 3」
コマンド結果:
[shohei@my-laptop bzrtoolstest]$ bzr log
------------------------------------------------------------
revno: 3
committer: Shohei Hagiwara <shohei@localhost>
branch nick: bzrtoolstest
timestamp: Sat 2019-03-09 12:20:01 +0900
message:
rev3
------------------------------------------------------------
revno: 2
committer: Shohei Hagiwara <shohei@localhost>
branch nick: bzrtoolstest
timestamp: Sat 2019-03-09 12:19:46 +0900
message:
rev2
------------------------------------------------------------
revno: 1
committer: Shohei Hagiwara <shohei@localhost>
branch nick: bzrtoolstest
timestamp: Sat 2019-03-09 12:19:29 +0900
message:
rev1.
ここで間違って、2,3をuncommitしてしまったとします。
概念図:1 → 2 → 3
コマンド結果:
[shohei@my-laptop bzrtoolstest]$ bzr uncommit -r 1
2 Shohei Hagiwara 2019-03-09 rev2
3 Shohei Hagiwara 2019-03-09 rev3
The above revision(s) will be removed.Uncommit these revisions? ([y]es, [n]o): yesYou can restore the old tip by running: bzr pull . -r revid:shohei@localhost-20190309032001-co5i2nh7w14r1uha
[shohei@my-laptop bzrtoolstest]$
(そして、間違いに気づかずにターミナルを閉じてしまい、revidがわからなくなってしまったとします・・・。)
ここから、2,3を戻したいとします。以下、詳細な手順です。
bzzrtoolsをインストール
ubuntuであれば以下でできます。
sudo add-apt-repository ppa:bzr/ppa
sudo apt-get update
sudo apt install bzrtools
他のOSの方法や公式手順は以下のサイトを参照ください。
http://wiki.bazaar.canonical.com/Download
bzr heads --allコマンドでrevidを特定
bzr log だとrev1ですが、bzr heads --allとするとリビジョン3のrevidが表示されていることが確認できます。
[shohei@my-laptop bzrtoolstest]$ bzr log -r -1
------------------------------------------------------------
revno: 1
committer: Shohei Hagiwara <shohei@localhost>
branch nick: bzrtoolstest
timestamp: Sat 2019-03-09 12:19:29 +0900
message:
rev1.
[shohei@my-laptop bzrtoolstest]$ bzr heads --all
HEAD: revision-id: shohei@localhost-20190309032001-co5i2nh7w14r1uha (dead)
committer: Shohei Hagiwara <shohei@localhost>
branch nick: bzrtoolstest
timestamp: Sat 2019-03-09 12:20:01 +0900
message:
rev3
bzr pull . -r revid:[戻したいrevid]で戻す
さきほどわかったrevision-idを使ってpullで戻します。
[shohei@my-laptop bzrtoolstest]$ bzr pull . -r revid:shohei@localhost-20190309032001-co5i2nh7w14r1uha
All changes applied successfully.
Now on revision 3.
念の為にbzr logで確認してみると、ちゃんとbranchのリビジョンが3に戻っているのが確認できます。
[shohei@my-laptop bzrtoolstest]$ bzr log -r -1
------------------------------------------------------------
revno: 3
committer: Shohei Hagiwara <shohei@localhost>
branch nick: bzrtoolstest
timestamp: Sat 2019-03-09 12:20:01 +0900
message:
rev3
[shohei@my-laptop bzrtoolstest]$