This post originated from an RSS feed registered with .NET Buzz
by Scott Hanselman.
Original Post: Moving life into CVS and DocumentLocator and the Authoritative Source
Feed Title: Scott Hanselman's ComputerZen.com
Feed URL: http://radio-weblogs.com/0106747/rss.xml
Feed Description: Scott Hanselman's ComputerZen.com is a .NET/WebServices/XML Weblog. I offer details of obscurities (internals of ASP.NET, WebServices, XML, etc) and best practices from real world scenarios.
You know I picked up a TabletPC recently. I will probably attend the North Africa
Developer Conference in Morocco this year and I wanted to bring my TabletPC rather
than my Corporate Laptop. It's a lot lighter (6 lbs vs. 11 lbs) and the batteries
last forever (at least 6 hours versus barely 2). It is a 1.5 GHz box, while
my Corporate Evo N800w is a 2 Ghz. We'll see if that really makes a difference.
Anyway, I sat down and prepared to move all my presentations and demos and C:/Utils over
to the laptop. It's about 2 gigs of Powerpoints, demos, code, and goodness.
If you've seen one of my presentations when I'm particularly hopped up on Diet Coke,
you know I use most of it! :) So, I made a C:\demos folder and started a copy.
Then, I stopped. What the heck am I doing? If I copy this stuff straight,
I'll have demos/presentations/code on three machines (my desktop as well). Every
once in a while I make an important change to a PowerPoint, or find a major bug in
some demo.
So, I said, it's time to move some of my life into An Authoritative Source (ne: Source
Control). Less for the version control and more to define and authoritative
source for information that I can pull from.
Tangent: My Contacts
I recently installed Plaxo in an attempt to
bring some semblance of organization to my information-life. It provides, for
all intents, a location for all your contacts that can sync to Outlook or Outlook
Express on other machines. It provides:
Conflict Resolution and Synchronization - Changes made by me/Changes made by others
Storage - I can install it on a new machine and bring my contacts down immediately.
File System Independance - I can bring it down into multiple clients without concern
over file system (or application)
And that's exactly the kind of problems that need solving for my presentations
and demos.
Back to the Story:
I have used Source Safe since before it was owned by Microsoft (Remember One
Tree Software) and I've used various *nix source control systems. But, I hate
it. Between Data Corruption and the general malaise I feel when I use it, it
wasn't an option for my personal data. Not to mention the whole "make writable"
nonsense. I'd prefer my personal files be writable be default, thank you
very much.
I really dig what the SourceGear Guys are doing with Vault, but I'm a little
nervous putting my data in a Database. It's kind of hard to restore a single
row (file) from a SQL Server Database, and it feels a little more opaque that I'm
confortable with. So, while I might use them for development, I needed a system
that was more flexible.
I've come up with two, one for code, and one for everything else.
My chosen solutions:
1. CVS
I'm keeping my source code (largely text-based) in CVS. For the client, TortoiseCVS also
use a namespace extension and intregrate directly into Explorer. They've recently
updated Tortoise to 1.6 and it's more stable and very easy to use. I installed
the free CVS NT Service and had it up
and storing source in 30 minutes.
Pros: Also, it's file system based and easy to backup
and can be accessed from multiple clients, including a Web Client and Tortoise.
Tortoise provides a very seemless experience and is my preferred way to work with
code.
Cons: CVS is too complicated for my wife to use and
offers many advanced features like tagging and branching that are very "Source
Code specific" IMHO. For that, it's perfect for my code. It does
mean storing all your code in a "sandbox" that is a copy of what's on the repository.
It's non-trivial for the novice to setup things like Check-In notifications and
it doesn't support any kind of full text indexing. It doesn't automatically
add files to the repository when you save them to a folder.
Basically, it's a nice source control system that I will use, but it's not a
Document Management System.
2. Document Locator
If you haven't tried DocumentLocator yet,
do. If you aren't ready to download a trial, checkout their awesome Flash demos.
This just might be the product for me. It also stores data in SQL Server, but
it's not trying to be a Source Control System (even though it is that, and lots more).
Pros: It includes a namespace extension for Explorer that makes
your document repository show up next to My Computer. You can open and save
files from any Windows app directly into the Repository. I have started using
it for all my "My Documents" type files. It supports versioning, has hooks into
SCC (the Source Control APIs for Visual Studio) and most importantly it's EASY.
It also replaces dtSearch with Full-Text Indexing of all files, including
scanned/OCRed TIFFs and PDFs. I've long wanted to start scanning more documents
and bills into my system, but I don't want to just dump a bunch of JPEG files into
a folder. DocumentLocator has some sweet scanning integration and scans, OCRs
and imports your documents into the repository. It supports a totally extensible
schema and arbitrary tags that are also searchable. It also supports notifying
people of changes and additions and will also suck documents directly out of Outlook
and into the repository if the document meets a specific filter.
Cons: Backing up a single file while it's still inside
the repository is still a challege, but I just back the whole SQL Server up anyway.
And if you don't have SQL Server, just use MSDE and you can still store up to 2 gigs
of files.
Both CVS and DocumentLocator act as an authoritative source for my data.
I run the services side-by-side on my home server and pull from them as I please.
I've got all my source CVS'ed and running on my TabletPC now, and I'll my documents
and presentations full-text-searchable in Document Locator. Whew. That's
a good weekend's work. Now it's time to watch Bernie Mac.