Saturday, February 07, 2009

SharePoint Checkout Model

In VSS, you check out to a folder. VSS remembers that folder. When you have a file checked out, you can manipulate it offline is as you see fit, all VSS knows is the filename. So as long as you check in a file with the same name, VSS is happy.

In SharePoint, the user is not involved in determining where the file is checked out to. Conceptually, it seems like you check the file out to an invisible "stream" (to use ClearCase terminology). One problem is that doesn't let you work offline. There are some good things about it, in that the user doesn't have to think about the check-out location of the doc. So it is less versatile, but simpler for the typical user.

But even that mental model seems broken. Because when you have a file checked out, a mere Save causes it to update the current copy with your work-in-process save. That seems very wrong. You should be able to save, but not have your updated version merged into the mainline stream until you are ready. At which time you would explicitly check it in. But that doesn't seem to be how SP works. As soon as you save, it seems to be checked in.

In fact, unless I am missing something (which seems probable) the only reason that SP needs a check out/check-in would seem to be to reserve the file for future use!


  1. This is a completely worthless feature. The checkout is simply a flag that says I'm working on it. It does not stop anyone also checking it out. It does not alert you that someone else has checked it out. It does not merge changes if there are any. It allows people to simply overwrite your changes (unknowingly). It is the worst example of version control that I could ever think of.

  2. Wow, you just confirmed my worst fears.