As Matt has mentioned on the TFS Migration blog we’re working on a migration toolkit and, specifically, a sample converter tool to keep WSS document libraries in sync with a location in the TFS source control server.
One of the most common questions I get when people hear this is “Why a WSS converter? Are people really asking for that? Why not CVS or PVCS or something?”
Well – there are a few reasons. Some good. Some not so much.
1) This is a sample application to demonstrate how to write a converter on the toolkit. It is not necessarily meant to be useful to a broad group of people but rather useful as a code sample.
2) We did not want to create a converter that relied on technology that not every TFS customer would have access to or that would require them to install additional software. We can be pretty well assured that all TFS customers have access to TFS and WSS. This reason gets the response … “then why not TFS to TFS? That would be useful to many people!” … to which I say:
3) Because it is a sample application we needed to pick something that was approachable. WSS doesn’t have concepts like branch and merge (and it barely has rename) so that lowered the bar significantly (or I thought, anyway).
4) There is actually a somewhat cool scenario that this converter opens up – you can check in your document changes at the same time as your source code (to TFS) and it will be mirrored to WSS. Then your PM can make document updates in WSS and the change will be mirrored to TFS. That’s kind of cool … right? I think so anyway.
5) Writing a more complex converter would add months onto the delivery time.
6) I already had a WSS->TFS prototype so the bar seemed like it would be lower than any other option.
Ultimately it was the decision we made. Sorry if you’re not happy. Life isn’t always butterflies and unicorns. Sometimes it’s a WSS converter. I think it was the right decision.
Why am I sharing all this?
Over the next few blog posts I’m going to be sharing some of the problems I’ve run into while working with WSS. This isn’t just to rant. Don’t get me wrong. I fully intend to have these posts included in the Rant category … but I have ulterior motives.
I would love to hear feedback on the issues I describe. Is there a better solution? Did I do something horribly wrong? Stuff that would be great to know BEFORE releasing the code.
Also as I share the problems it is inevitable that I will share some of the design (I’d like to share it all – we’re trying to figure out how to do that). The design isn’t in stone yet. If I’ve done something dumb you can yell at me and I can fix it. More of that “stuff that would be great to know before releasing”.