2011-08-31 7 views
5

しばらくの間、Hgでバージョン管理された小さなプロジェクトで作業した後、私は今日、ローカルと中央のMercurialリポジトリを検証しました。ローカルではエラーや警告はなく、 "リポジトリはrevlog形式1を使用します"。しかし、中央リポジトリでは、Mercurial: "warning:xxxxはrevlog形式0を使用します"を取り除く方法?

repository uses revlog format 1 
checking changesets 
checking manifests 
crosschecking files in changesets and manifests 
checking files 
warning: `x' uses revlog format 0 
warning: `xx' uses revlog format 0 
warning: `xxx' uses revlog format 0 
... 

(このタイプの警告は13個あります)を取得します。これらの警告を取り除くことはできますか?

+3

あなたが*非常に*古いレポを持っているようです。 *エラーが出ない場合は、 'hg verify'を作成して、それを複製して、現在の複製の代わりに複製を使用することができます。 – Rudi

+0

@ルディ、あなたの答えがコメントではなく実際の答えになっていれば素晴らしいだろう。多くの人々が、フロントページの優先順位にゼロの答えを示す質問を出していますが、これはすでにあなたから素晴らしい答えがありました。また、質問者がコメントから必要なものを取得した場合、後で別の回答を選択する可能性が低くなり、インセンティブ構造が歪んでしまいます。 –

+0

@ Ry4an私が盲目的に推測しているときに私は答えを出さない。私は変換アプローチではなく、 'クローンプル'を見つけたので、サーバ上で 'クローンクローン'を行うと答えるのは間違っていたでしょう。 – Rudi

答えて

2

--pullでリポジトリをクローンすると、実行中のMercurialのバージョンが読み書きできる最新のソートとして再作成されます。 --pullを使用しないと、古いデータファイルにハードリンクが使用されます。サーバー実行時にそう

は:

hg clone --pull existingrepo newrepo 
mv existingrepo was-existingrepo 
mv newrepo existingrepo 
+0

ありがとうRy4anとRudi! – texnic

1

私はまた、別の方法を見つけたと思います。私はConvert extensionを使ってHgからHgにリポジトリを変換しました。リポジトリはフォーマット1、すべてのファイルを持つようです。

+0

私はこれに注意します。 Convertはリビジョンハッシュを変更することができますが、他のものを変更しなければそれはできません。 – Kevin

0

私は、エラーが発生した時点でエラーが発生したリポジトリのクローンを作成し、エラーが発生したリポジトリの内容を新しいクローンに引き継ぐことに成功しました。エラーを想定し

はリビジョン170から始まる:

hg clone -r 170 damagedRepo newRepo 
cd newRepo 
hg pull ../damagedRepo 
関連する問題