I have moved this blog over to a new account. Please update your aggregators to point to
http://feeds.feedburner.com/PolymorphicPodcastBlog
...and you will automatically be updated with any future changes to the this feed.
Thanks,
Craig Shoemaker
I Quit With a Smile on My Face
I recently quit my job for a much bigger and decidedly better opportunity. I am elated to announce that I have accepted a new position with Infragistics as a New Media Evangelist. This means that I get to spend my days doing the things I love in hopes that I can help bring the developer community closer to a great company.
What does this mean for the Polymorphic Podcast?
I see great things on the horizon. While I retain 100% control over the show, Infragistics is allowing me to spend time during my workday on development and production of the show. In the past I have always had to steal an hour here or an hour there to work on production, but now I have dedicated time to apply to the growth the Polymorphic Podcast.
What this does not mean is that the Polymorphic Podcast is now a corporate extension of Infragistics. You don’t need to worry that I will be dropping the URL of my employer all over the place. There is no veiled marketing going on here. Infragistics just realizes there is a lot of value to keeping me connected to an established community. I thank Jason Beres and Ambrose Little for their hard work in making this happen.
So When Do You Get a New Show?
How about three? I’ve been promising you a video on how to install Subversion on a Windows box. Wait no longer because that video is now here. I have also recorded a show demonstrating how to use a new utility I call MVP Commander (thanks Rob Conery!) that generates MVP stubs right in Visual Studio. This way you are not forced to go to the tools page on my website to generate this code. Please checkout the notes and download links for the code and video here. Finally I recorded an audio catch-up show to announce my affiliation with Infragistics, tell you about the video shows and answer some reader email. You can listen to the show on the MVP Commander show-notes page.
Get Ready!
Between the work I am doing on my blog and podcast, the new podcasts, videos and screen-casts coming from the Infragistics website, and some appearances I am making at user groups and conferences throughout the year - some of you might be regretting asking for more! ;)
Craig Shoemaker sits down with Miguel Castro to follow up on the first show on Architecting for Extensibility. In the previous show, Miguel takes us through a number of the patterns that make it possible for you to design points of extensibility into your applications. In the sequel to part one, Miguel describes in detail how he uses this pattern in CodeBreeze.
Raising Money for Diabetes with Halo 3 on Oct 11
Join Scott Hanselman in his enduring fight against diabetes by playing Halo 3 in high-def! For details on the event
check out Scott's blog (http://tinyurl.com/yue4qm). To sign up go to http://iammasterchief.com/
Thanks!
I want to send a warm greeting and a big thanks to:
- Jeffrey Norris
- Buddy Stein
- Brian Deacon
Still an MVP
My ASP.NET MVP award was renewed this year!
Subversion
Subversion, sometimes known as SVN, is an open source version control system.
Subversion allows users to keep track of changes made over time to any type of electronic data. Typical uses are
versioning source code, web pages or design documents.
Why Subversion over Visual Source Safe?
While Visual Source Safe (VSS) is fully integrated into the Visual Studio environment, there are many
disadvantages that can not be ignored.
Reliability
Sam Gentile, in his blog post entitled "No More VSS, Its Subversion",
is so bold to just link to the search terms "VSS+corrupt" on Google to make a case for the ubiquity of VSS problems.
- Numerous accounts of crashing and corruption: See links above...
- Not a client-server application: The current VSS setup makes it difficult to expose source code to developer's outside your network.
- Database size restriction: Some say the limit is 2GB, others say 10GB. Even if it's 100GB - who want's to worry about a size restriction?
Preferential Issues
There are also a number of issues with VSS that are most fairly described as "preferential issues". I cite these issues because
while they are not technically "bugs" they do represent limitations that many developers find as a hurdle to deal with in the
real world. Examples of some of these issues are exclusive file locking and VSS's method of tagging and branching make it difficult at times
to work with.
Operation
Subversion features the operations you would come to expect from any source control system. If you come from a VSS background, some of the
terms may seem a bit awkward. Below is a list of the most common operations you encounter while using Subversion.
Trunk
The trunk is the main thread where you will often work on your source code. The trunk acts as the basis where you can branch off and make
changes or create point-in-time copies of your code. The trunk, just like a tree, is what supports a source code project.
Checkout
As opposed to a "check out" in VSS, a Subversion checkout is when you contact the code repository for the first time
and bring down the files on to your machine. When you do a checkout the file and directory structure is created on your computer
and a hidden folder is created under each folder under source control that helps maintain the state of each file.
Add
When you want to add a new file to the source control repository, you must first mark the file as being added. This will signal
to Subversion that the next time you synch up with the repository, the file must be copied from its location on your machine
to a versioned state on the Subversion server.
Commit
Many changes that you make to files will require a two-step process to expose the changes to other users of the repository. After you
have added or changed a file, you must commit the changes up to the Subversion server. This will allow you to make many changes, but submit
all the changes to the repository in a single transaction. Changes to the repository are atomic actions.
The two-step process also enables Subversion to keep the code repository's integrity while not requiring a exclusive lock
on files under source control.
Conflict Resolution
When multiple people are working on the same project, inevitably they will end up editing the same file at the same time. When
this happens there is a conflict in file states that must be resolved. When you go to commit your changes to Subversion, if a
conflict is detected you will have an opportunity to resolve the conflict. Some of the UI tools make the experience prettier, but the
process is the same whether or not you are using a GUI tool or the command line. Conflict resolution will expect you to choose portions
of a file or entire files all together as the file version of the file. You do have an opportunity to say, "give me this section from file 1
and this section from file two" in order to reliably keep everyones changes. Confli