34

ワークスペース内のファイルの新しいデフォルト作業コピーを作成せずに、Mercurial 内のファイルの以前のリビジョンのコピーを取得するにはどうすればよいでしょうか?

私はhg revertコマンドを見つけました。それは私が望むことをすると思いますが、よくわかりません。

数分間作業するために、コードの以前のリビジョンのコピーを取得する必要があります。しかし、正常に動作している現在のバージョンを邪魔したくありません。

だから私はこれをするつもりだった:

hg revert -r 10 myfile.pls

ファイルの現在の作業バージョンが妨げられないように、別のディレクトリに出力する方法はありますか? 何かのようなもの:

hg revert -r 10 myfile.pls > c:\temp\dump\myfile_revision10.pls
4

2 に答える 2

52

cat コマンドを使用して、ファイルの任意のリビジョンを取得できます。

$ hg cat -r 10 myfile.pls

出力を別のファイルにリダイレクトできます

$ hg cat -r 10 myfile.pls > old.pls

または--outputフラグを使用して。複数のファイルに対してこれを行う必要がある場合は、プロジェクト全体に対してこれを行うことができるarchive コマンドを見てください。

$ hg archive -r 10 ../revision-10

revision-10これにより、リビジョン 10 でのリポジトリのスナップショットを含むフォルダーが作成されます。

ただし、ほとんどの場合、update コマンドを使用して以前のリビジョンをチェックアウトする必要があります。Update は、新しい変更を取り込んだ後に作業コピーを最新の状態にするために使用するコマンドですが、必要に応じてこのコマンドを使用して作業コピーを古くすることもできます。そう

$ hg update -r 10   # go back
(look at your files, test, etc...)
$ hg update         # go back to the tip
于 2010-08-30T06:03:48.240 に答える
9

使用するコマンドは次のとおりです。

hg cat -r 10 myfile.pls > C:\temp\dump\myfile_revision10.pls

Unix を少し知っていると、Mercurial コマンドの操作に役立ちます。おそらくcat、組み込みのエイリアスprintまたは同様のものを持っている必要があります。

于 2010-08-30T00:53:13.853 に答える