シナリオ:
svn:externalsを使用して、CodePlexからMicrosoft.Practices.ServiceLocationを取得しています。ただし、自分のプロジェクトでcsproj-fileを参照すると、2005年から2008年にアップグレードされます。これにより、プロジェクトファイルのコピーがベースコピーと異なり、Subversionからプロジェクトを更新できなくなります。
... \ deps \ Microsoft.Practices.ServiceLocationを更新すると、次のようになります。
Command Update
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\ServiceLocatorProvider.cs
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\ServiceLocatorImplBase.cs
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\ServiceLocator.cs
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\Readme.txt
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\Properties
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\Microsoft.Practices.ServiceLocation.csproj
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\IServiceLocator.cs
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\ActivationException.Desktop.cs
Tree conflict ...\deps\Microsoft.Practices.ServiceLocation\ActivationException.cs
Completed At revision: 43682
warning! One or more files are in a conflicted state.
... \ depsを更新すると、次のようになります。
Command Update
Completed At revision: 0
ルートを更新すると、次のようになります。
Command Update
External ...\deps\Microsoft.Practices.ServiceLocation
External failed ...\deps\Microsoft.Practices.ServiceLocation
Error Working copy '...\deps\Microsoft.Practices.ServiceLocation' locked
Error Please execute the 'Cleanup' command.
Completed ...\deps\Microsoft.Practices.ServiceLocation - at revision: 0
作業コピーがロックされているという混乱は間違っているようです。Microsoft.Practices.ServiceLocationフォルダでリリースロックを実行すると、「ロックを解除するものはありません。この作業コピーにロックされているファイルはありません」というメッセージが表示されます。ルートでコマンドを実行しても同じ結果になります。
クリーンアップを実行しても何も変わりませんでした。
TortoiseSVNを使用しています。
- アップグレードを回避するために、プロジェクト/ディレクトリを読み取り専用として扱うようにVisual Studio 2008に指示できますか?
- これを機能させるために実行できる秘密のSubversionコマンドはありますか?
- 変更されたファイルを更新するとツリーの競合が発生するのはなぜですか?
編集:私はいくつかグーグルで検索し、http: //svnbook.red-bean.com/nightly/en/svn.tour.treeconflicts.htmlでツリーの競合を説明するSubversionのドキュメントを見つけました。変更されたファイルを更新するときにツリーの競合が発生する理由がわからないため、3番目の質問を変更しました。