0

VisualStudio内でVisualHGを使用しています。(Fetchを使用して)プルすると、次のエラーメッセージが表示されることがあります。

[Errno 13] C:\ inetpub \ Websites \ SomeProject.csproj:別のプロセスによって使用されているため、プロセスはファイルにアクセスできません

これにより、リポジトリが混乱し、すべてを削除して再度プルする必要があります。これを防ぐために私にできることはありますか?この問題は、TortoiseHGまたはコマンドラインからプルするときに発生することはなく、プロジェクトをVisual Studioで開いて、VisualHGでプルする場合にのみ発生するようです。

4

3 に答える 3

2

TortoiseHg2.0.4とVS2008を搭載したマシンで非常によく似たものが見られます。Visual Studioは、ファイル変更イベントを検出するとファイルを一時的にロックしているように見えます。これにより、Hgが失敗します。TortoiseHgとコマンドラインクライアントの両方でこれが見られます。

の間に発生するとかなりイライラしますが、それはまた、かなり壊滅的な可能性があるpullときにも発生します。merge

于 2011-06-15T15:52:18.487 に答える
1

できるのは、VisualStudioを開いていないことだけかもしれませんfetch。それはそれを引き起こしているpull部分ではありませんが、 。Visual Studioはプロジェクトファイルをロックしているようで、開いている間はMercurialに変更させません。fetchupdate

fetchただし、 TortoiseHGまたはコマンドラインを使用したときにプロジェクトが開いているかどうかは指定しませんでした。を使用するのではなく、プルと更新を別々に試すこともできますfetch

編集:TortoiseHgバージョンの場合もあります。以前に開いているプロジェクトで別のリビジョンに更新しようとしましたが、Visual Studio 2008はそれをリロードしたかっただけです(ファイルロックエラーはありません)が、TortoiseHg2.0.5を使用しています。気に入らない場合や機能しない場合は、いつでも1.1。*に戻ることができます。

于 2011-06-13T19:41:10.053 に答える
1

MercurialとVS2008でのファイルロックについても同じ問題が発生していますが、.csprojファイルとは関係ありません。プロジェクトファイルはcmakeによって生成されるため、バージョン管理すらしていません。代わりに、cmakeファイルのバージョン管理を行っています。

この問題により、ある場合には1日分の作業が失われ、他の場合には、古いファイルが新しいファイルを上書きしていたという不適切なマージが発生しました。

これらのことが起こったとき、私はフェッチ拡張機能を使用していました。

Z:> hg --version Mercurial Distributed SCM(バージョン1.9.2)(詳細については 、 http://mercurial.selenic.comを参照してください)

Copyright(C)2005-2011MattMackall他これは自由ソフトウェアです。コピー条件については、ソースを参照してください。保証はありません。商品性や特定の目的への適合性についてもそうではありません。

于 2011-10-17T17:03:26.180 に答える