Scenario:
I’m using svn:externals to grab Microsoft.Practices.ServiceLocation from CodePlex. However, referencing the csproj-file in my own project causes an upgrade from 2005 to 2008. This makes my copy of the project file different from the base copy, and I am unable to update the project from subversion.
An update of …\deps\Microsoft.Practices.ServiceLocation results in:
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.
An update of …\deps results in:
Command Update
Completed At revision: 0
An update of the root results in:
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
The messing claiming that the working copy is locked seems to be wrong, executing Release lock on the Microsoft.Practices.ServiceLocation folder results in a message stating “There’s nothing to unlock. No file has a lock in this working copy.” Same result if I execute the command at the root.
Executing a cleanup changed nothing.
I’m using TortoiseSVN.
- Can I tell Visual Studio 2008 to treat a project/directory as readonly to avoid an upgrade?
- Is there a secret Subversion command I can execute to get this to work?
- Why does an update of files that havnt changed cause a tree conflict?
Edit:
I’ve googled some, and found the Subversion documentation explaining tree conflicts at http://svnbook.red-bean.com/nightly/en/svn.tour.treeconflicts.html. I changed my third question since I dont understand why I’m getting a tree conflict when updating files that havnt changed.
Visual Studio 2008 will quite happily open a read-only solution (this is the normal, non-checked-out usage).
But VS2008 can’t open VS 2005 solution files, so it always tries to upgrade. You seem to be looking for a way to open a 2005 solution in 2008 without the upgrade, and I don’t think this is possible.
Either get a copy of VS 2005 (this could be an Express edition), or get the Codeplex project as a whole to upgrade (remembering that VS 2008 will target .NET 2.0).