web-dev-qa-db-ja.com

Mercurial:「作業ディレクトリ内の追跡されていないファイルは、要求されたリビジョンのファイルと異なります」

誰もこのMercurialエラーの意味を教えてもらえますか?

作業ディレクトリ内の追跡されていないファイルが、要求されたリビジョンのファイルと異なります

これは、hgフェッチの実行中に発生しました。

C:\myapp>hg fetch ssh://hg/myapp-v1
pulling from ssh://hg/myapp-v1
searching for changes
adding changesets
adding manifests
adding file changes
added 93 changesets with 693 changes to 78 files (+1 heads)
updating to 797:0df7dbe7dc06
196 files updated, 0 files merged, 196 files removed, 0 files unresolved
merging with 704:edb7765768c6
abort: untracked file in working directory differs from file in requested revision: 'a/b/c/d.Java'

このファイル(a/b/c/d.Java)が.hgignoreで設定されたどのパスとも一致しないと私が判断できることから。また、この特定のファイルは、2つのリポジトリ(myappとmyapp-v1)でも同じです。

これが何を意味するのか、私にはわかりません。 ?

77
Marcus Leon

Myappリポジトリのローカル作業ディレクトリにa/b/c/d.Javaという名前のファイルが既にあることを示していますが、追加(追跡)されておらず、フェッチは更新/マージ時に上書きしません。

あなたができることはエーテルです:

  • a/b/c/d.Javaのコピーを邪魔にならない場所に移動してから、プル/更新を実行します。その後、移動したa/b/c/d.Javaを取得した1つと比較します。

または

  • hg add a/b/c/d.Javahg commit a/b/c/d.Java、およびプル/マージ

前者はファイルがなくなっているため機能し、後者はMercurialがそれらをマージできるようにコピーが追跡されるため機能します。

また、fetchの使用を停止することを検討する必要があります。それはあなたのためにpullupdatemergeを組み合わせますが、これは安全な方法ではありません。この場合、あなたのpullは成功し、updatemergeの両方があなたにより多くの有用なメッセージを与えたでしょう。

81
Ry4an Brase

hg update --cleanを実行してこれを回避しました

27
azeroth12

Ry4anの回答(ファイルを削除する)を試したが、まだ機能しなかったので、パージを実行し、すべての痕跡を取り除いて、後で機能するようにしました。誰かが代替ソリューションを探している場合に備えて。

8
Justin Pihony

エラーダイアログを受け入れて、Discard local changes, no backup

enter image description here

そして、あなたは良いはずです、それは追跡されていないローカルファイルを上書きします...

8

TortoiseHGを使用している場合は、[更新]ウィンドウで[ローカルの変更を破棄、バックアップなし]オプションをチェックできます。

3
Owen Pauling