パスワードを忘れた? アカウント作成
186815 journal

Livingdeadの日記: Bazaar共用リポジトリのつもりでbzr initしてしまった時の修復方法

日記 by Livingdead

Bazaarでは親を同じくする多くのブランチで重複するアイテムを保持するために共用リポジトリ(shared repository)を使うことができる。具体的にはディレクトリrepoでbzr init-repoしておいてrepo/branchxでbzr init --use-sharedすると、repo/branchxにコミットした内容の実体はrepo/.bzrに保持される。repo/branchxから repo/branchyにブランチを複製しても実体はrepo/.bzrに保持されるためディスク容量が節約できるというわけだ.

とここまでは当たり前なのだが,先に--use-sharedでないブランチbranchxを使っていて,これを共用リポジトリを使うようにブランチを変換することもできる。mkdir repo; bzr init-repo repo; mv branchx repoとするとrepoが共用リポジトリ,branchxがブランチとなるのだが,このままでは実体はrepo/branchx/.bzrに保持されたままで意味が無い.そこでcd repo/branchx; bzr reconfigure --use-sharedするとrepo/branchx/.bzrにあるブランチの実体がrepo/.bzrに移動される。

ここでもし間違えてrepo をbzr init-repoではなくbzr initとしてしまっていてもその後のbzr reconfigure --use-sharedが成功してしまうから注意が必要だ.もしそうしてしまうと実体が移されたrepoは共用リポジトリとして認識されず repo/branchxでbzr infoとしてもブランチですら無いと言われてしまう.ブランチまるごと破壊してしまったように見える.

こうなったときにはあわてずにrepo2/repo /branchxのように更に上にrepo2を作ってその中でbzr init-repoし、repo2/repoの中でbzr reconfigure --use-sharedすれば良い.repo2/repo/branchxでbzr infoするとrepo2まで上って共用リポジトリを見つけた上で正しくブランチとして認識してくれる.中間のブランチのrepo2/repo/.bzr にはすでに実体はないので中抜きしてしまっても良い.

ところで最近日記の下書きにGoogle Docsを使っている.普通に日記のフォームに書き込みつつ,フォームの内容を適宜保存してくれるFirefox拡張のLazarusもそれなりに快適なのだけど、異なるPCから編集したいことも多いのでGoogle Docs+オフライン編集の方が便利な場合もある.まぁ両者は適用範囲が違うので併用するのが今のところベスト.

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

最初のバージョンは常に打ち捨てられる。

読み込み中...