This afternoon and evening I received the following error when attempting to commit a number of changes to the CodePlex repository for the DotNetNuke Feedback module (
http://dnnfeedback.codeplex.com) project:
Commit failed (details follow):
Repository UUID '142e9c35-602f-4880-9f37-ec48a24daa6a' doesn't match expected
UUID '5ff7c347-ad56-4c35-b696-ccb81de16e03'
As the commit operation had worked fine several weeks ago I began looking through the CodePlex discussion forum and issue tracker for recent changes/issues and immediately found that other project users had begun experiencing the same issue beginning a few of days earlier. I also found the following on the CodePlex webblog:
The information in this entry applies to project coordinators and developers that are using TFS with the Team Explorer client. If you are using Mercurial or a Subversion client, then nothing will change for you.
During the upcoming weeks we will be migrating all of the CodePlex TFS projects onto our new TFS 2010 servers. This upgrade will allow us to support new TFS features and provide increased server performance and reliability. The move will happen on a server by server basis . . .
Since I was using Tortoise SVN as my subversion client, I did not at first think that this was related even though the TFS server for the DNN Feedback project was migrated on August 2nd. However, it appears that the migration did cause the UUID of each TFS repository to change thus causing a mismatch between the new repository UUID and that stored in the entries file in each project folder's hidden .svn folder. According to a CodePlex discussion thread of today's date, the mismatch can be corrected by first doing a clean checkout of the projects root folder. However, in my case, I already had made modifications to 6 files and made two file additions and two file deletions due to renames of version specific release notes and test cases text files so I wanted to avoid doing a clean checkout if possible. I also discovered that the Checkout option was not available on the Tortoise SVN context menu so could not have done so even if I wanted to.
The following blog post of today's date on Gut Instinct (of all places) finally led me in the right direction to manually update the entries files in each .svn folder:
http://www.gutgames.com/post/UUID-Doe....
Here are a few notes on the manual update process:
- In Windows folder options under Advanced Settings/Hidden Files and Folders select "Show Hidden Files, Folders and Drives"
- In each .svn folder which will reside in each folder of your project, locate the entries file and in its properties uncheck "Read Only"
- In the text editor of your choice open the entries file (note that the filename has no file extension) and do a find/replace to replace the old UUID (actually a GUID) which will the the last or "expected" UUID in the above error message with the new UUID which will be the first or "repository" UUID in the error message.
- Save the modified entries file.
- Now when you attempt to commit your changes to the repository, no errors should be noted and all changes will be successfully made.
Hopefully my experience will save other Forge project contributors using subversion clients from the same aggravation!