1. ホーム
  2. mercurial

[解決済み] すべて破棄して、最新リビジョンのクリーンコピーを取得しますか?

2022-05-09 23:33:05

質問

ビルドプロセスをmercurialに移行し、作業ディレクトリをtipリビジョンの状態に戻したいです。ビルドプロセスの以前の実行では、いくつかのファイルを変更し、コミットしたくないファイルを追加しているため、ローカルでの変更とリポジトリに追加されないファイルが存在します。

それらをすべて破棄して、最新リビジョンを持つクリーンな作業ディレクトリを得るための最も簡単な方法は何でしょうか?

現在、私はこうしています。

hg revert --all
<build command here to delete the contents of the working directory, except the .hg folder.>
hg pull
hg update -r MY_BRANCH

が、もっと簡単な方法がありそうな気がします。

レポを削除して、新しくクローンして、アップデートするのと同等のことをしたいのです。しかし、レポが大きすぎるため、それでは十分な速度が得られません。

解決方法は?

その手順 に短縮することができる。

hg pull
hg update -r MY_BRANCH -C

-C フラグは、更新前にすべてのローカルな変更を破棄するよう update コマンドに指示します。

しかし、これではまだリポジトリに追跡されていないファイルが残ってしまうかもしれません。あなたはそれらも取り除きたいようなので、私なら purge という拡張子を使用します。

hg pull
hg update -r MY_BRANCH -C
hg purge

いずれにせよ、あなたができないと言っている "full clone" 方式に処理を変更する場合を除き、ここであなたが望むすべてを行うために Mercurial に要求できるコマンドは一つもありません。