Today, the TF Version Control system was operational again. The TFVC responsible rebuilt the project from his last good known copy of the source files. Time for me to merge in my "offline" changes. I opened the 'Source Control Explorer', browsed to the project and selected 'Get latest version (recursive)'. TFS dutifully discovers and lists the source files that I have made changes to, and prompts me to resolve the conflicts (conflict type is 'Writable file').
- Check out and auto merge: nice when it works, but it never did for me
- Overwrite local files/folder: does exactly what it says, just remember to make copies of your "offline" work
- Ignore conflicts: pointless option as TFVC will fail later on if you try to checkout a writeable file
Note that if you try to check out a writeable file, you will get this error: "Checkout error or user cancellation - File was not checked out".
Where did the useful SourceSafe checkout options for writeable files go ? As I am sure that sometimes in the future I will have to make offline changes to files, I miss these two options in TFVC:
- Check out and replace: yes, I made some changes, but I want to discard them now, and then continue working on the file to implement the needed changes
- Check out and leave: yes, let me keep my changes - AND - make it easy for me to add my changes to this file to TFVC
Please, can I at least have the 'check out and leave local file' option back ? Pleeease, TFVC team !
TFVC is really cumbersome when merging "offline" changes back into the version control system:
- Make a backup of your offline files using Windows Explorer before even thinking about using TFVC
- Perform 'Get latest version' to see which 'Writable files' conflicts there are, and remember the list of files
- Resolve all conflicts with 'overwrite local files/folder', unless the 'auto merge' option works for you; the 'ignore' option takes you nowhere
- Perform 'Check out for edit' on the files, note that this will only work if you first have "resolved" the conflict by overwriting your offline changes
- Replace the old versions of the changed files with the "offline" files using Windows Explorer
- Finally check in the 'pending changes' set of source files
You will soon find out that the above should be done with a small set of files at a time, as it is easy to loose track of which source items have been merged or not.
I wonder what kind of usability tests they do at Microsoft to think that TFVC will always be available/online, or to decide that options that were available in SourceSafe for a good reason is no longer needed in the brave new team foundation world. Maybe it is true that the TB manager is so oblivious to the community that he had never heard of CruiseControl.NET.