2011-09-16 7 views
4

私は多くの方法で、古いリビジョンにいくつかのファイルを更新しようとしましたが、私はまだ見つかっていません。 以下、例えばMercurialの古いリビジョンに特定のディレクトリを更新することは可能ですか?

(ない恒久的に、単に一時的にテストのために更新することは)SVNでOKです。

svn up -r 100 foo.cpp 
U foo.cpp 

しかし、Mercurialでは 'up'コマンドはファイル名の引数を許可しません。

だけそれはMercurialの中で全体のソースツリーを更新することができますか?

答えて

2

これは、基本的にはMercurialや他のDVCSsによって許可されていません。 CVSとSubversionはどちらも、ファイルごとにチェックアウトしたリビジョンを追跡します。ファイルxのr1とファイルyのr2を持つことができます。 DVCでは、リポジトリ全体が単一のバージョンになっています。これは、Mercurialではhg idと表示されます。

@Tomは別のリビジョンからファイルを変更することができますが、変更を表示せずに別のリビジョンを表示したい場合は、別のクローンでupdateを実行する必要があります(a)インスタントと(b)スペース効率的な)それほど面倒なことではありません。

7

あなたはhg revertを使用する必要があるだろう:

hg revert -r 100 foo.cpp 

hg diffを実行することでわかるように、これは、あなたのローカルな変更を与えること。

は、詳細はhg help revertを参照してください。

+0

おかげで、それは私が欲しいものは異なるのです...それが唯一の方法ですか? – JaycePark

+0

'' revert''を使用する際の問題点は何ですか? – Tom

関連する問題