Friday, May 28, 2004

Details on source control in Visual Studio 2005 Team Foundation

Korby Parnell takes notes on Doug Neumann, the source control PM on the Visual Studio 2005 Team System team, at TechEd2004. He talked about how to manage software configurations with Visual Studio 2005. Lots of interesting details and a very new feature.

Although I think "shelving" could be easily handled in Subversion by using branches. In fact, I was talking to a team member just yesterday about switching away from VSS for precisely this reason. Daily checkins against one's private branch would be a very nice form of backup, too. Then when one is all done, merge against the head.

Tuesday, May 25, 2004

The magic of Edit.CycleClipboardRing

I've been using various text editors (QEdit, The Semware Editor, Emacs) for, ummm, 15 years. And I learned something from each of them. I just love using a well-designed editor with a powerful built-in macro language. The ability to easily customize, extend, and automate the environment one spends 8+ hours a day using is underrated. There was a community around builing macros for TSE and there is one for Emacs as well. (People actually write email & NNTP clients inside these text editors!) But I've given up using these editors in exchange for the editor built into Visual Studio 2003. Why? Integrated building, source control, and debugging. I've learned to live with a dumbed-down editor and was content with that. Until today.

Today I found Edit.CycleClipboardRing (ctrl-shift-v) in Visual Studio 2003. And it awoke in me a dormant desire to customize Visual Studio's editor. I'm wondering why, among all the various .NET fansites, isn't there one that focuses on extending and customizing Visual Studio? Sure, there are a few blog posts around here and there but no central repository.

Hmmmm....

Visual Studio 2005 Team System not for individuals or small teams???

Via Wesner Moise's blog, I ended up at the Visual Studio 2005 Team System FAQ. If you're interested in source control, as I am, scroll immediately to the very bottom and read the "Source Code Control" section.

I work on a small distributed team and we're ready to ditch SourceSafe for something more robust with a story for both multiple checkouts and WAN connections. With only 3.5 developers, we're not interested in scalability; we're interested in performance and features! Yeah, I tried all the VSS add-ons and they just didn't work well with multiple checkouts or Visual Studio 2003 integration.

Clearing Terminal Services Connections

How to clear a hung Terminal Services connection? Particularly when *both* are hung and the both is miles away! I found the answer in this blog from Ingo Rammer. Interestingly, the solution Ingo found wasn't the easiest to use. I'm planning to use the technique mentioned in the second comment.

I wonder how often the real content of blog entries are not in the actual posts but rather in the comments? Pretty often, I'll bet. Again, this lends a lot of weight to the argument that rss aggregators should support the Comment API. We want conversation! How long until we'll need to support scoring the replies for relevance and/or value?

Tuesday, May 11, 2004

Visual SourceSafe is shrinking my pipe

I work from home, connecting to our servers using DSL (512/256) and a VPN. Most of my develoment work is done in Visual Studio 2003 with Visual SourceSafe 6.0 (multiple checkouts enabled). The most annoying aspect of this setup is that any VSS interaction is very slow. I mean, is usually takes that long that I lose focus on my current task. Not good. So I've been looking at tools and techniques to help me work effectively.

Here are the options I've found so far:

a. SourceGear's SourceOffSite Classic ($239)
I used SOS at a prior job and found it to be quite functional and stable. It is the most expensive option of all the tools but is also the most effective. It's just to expensive for me, at the moment.

b. SCCBridge (free)
I've tried to use this tool several times but each time gave up due to a lack of robustness. It spits out very obscure messages and has a fairly difficult configuration process. When I finally got it working, the speed just wasn't much better, if at all.

c. VssConnect ($30)
I haven't actually looked at this product yet but intend to check out the eval version later this week. If their website is to be believed, it's precisely what I'm looking for!

d. Working disconnected (free, it's a feature of Visual Studio & VSS)
It just occurred to me yesterday that I could disconnect (File menu, Source Control, Change Source Control) from the VSS database and work offline. I'll post my observations on this technique separately.

Visual Studio 2003 - working disconnected from VSS

I work from my home and connect via DSL (512/256) to a VPN where our servers are located. Most of my work is done with ASP.NET projects in Visual Studio 2003. Even with broadband access, Visual SourceSafe interactions are incredibly slow. So I've been looking into working disconnected (File menu, Source Control, Change Source Control) in an attempt to speed things up. We have multiple checkouts enabled.

1. Working disconnected is really nice. Adding new files, checking out, etc, is instant (< 1 sec). No more multi-second pauses waiting for the UI to respond when you start to change a file; you get a dialog box immediately.

2. When reconnecting, there are several dialogs that warn of potentially lost work. None of these apply to multiple check-out scenario's of course, but they still need to read and the correct button needs to be clicked.

3. One of the useful tasks that just can't be done when working disconnected is "undo checkout". You would either reconnect or use the VSS Explorer to retrieve the file contents via cut-n-paste.

4. The process of working disconnected requires 4 additional steps; 2 to disconnect and 2 more to reconnect. While the disconnecting step isn't too bad, the time VSS takes to reconnect is intolerable. In addition, the time isn't constant, as I've noted below. What was the difference? I don't think it was my network connection as I wasn't doing anything else and none of my other PCs were turned on. This is just too slow for me.

5. If I have time later this week, I'll check out the eval version of VssConnect. It only costs $30/developer and is specially designed to speed up VSS interactions over a WAN. http://www.vssconnect.com/VssConnect.htm

Connected Process
Time to load solution 2:16
Time to checkout 0:07
Time to checkin 0:09
Time to do get latest 6:30

Process to Disconnect
Time to load solution 2:16
Time to open VSS menu 1:45-3:29
Time to disconnect 0:05

Disconnected Process
Time to load solution 0:10
Time to checkout 0:01

Process to Reconnect
Time to open VSS menu 1:45-3:29
Time to reconnect 7:20
Time to do get latest 6:30
Time to checkin 0:08