1. ホーム
  2. mercurial

[解決済み] Mercurialです。「作業ディレクトリにある未追跡のファイルと要求されたリビジョンにあるファイルが異なる"?

2023-05-24 13:58:18

質問

この 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)リポジトリでも同じです。

私はこれが何を意味するのかさえ、はっきりしません。 ??

どのように解決するのですか?

という名前のファイルがすでに存在すると表示されます。 a/b/c/d.java という名前のファイルがすでに myapp リポジトリのローカルワーキングディレクトリにありますが、それは追加(追跡)されておらず、fetch は更新/マージ時にそれを上書きすることを望んでいないことを示しています。

できることはエターナルです。

  • のコピーを移動します。 a/b/c/d.java を移動し、それから pull/update を行います。 その後、移動した a/b/c/d.java をフェッチでダウンさせたものと比較します。

または

  • hg add a/b/c/d.java , hg commit a/b/c/d.java そして、プル/マージ

前者は邪魔なファイルがなくなったのでうまくいき、後者はコピーが追跡されるのでMercurialがマージできるからうまくいくのです。

また fetch . これは pullupdate そして merge を使うのは、安全な方法とは言えません。 この場合、あなたの pull は成功し、両方の updatemerge を使えば、もっと親切なメッセージが出るはずです。