Thursday, September 09, 2004

Version Control At The Method Level

So, I've been in cold arctic known as Filestar Statica and getting used to the local customs again. It's not that hard to get back into it. But, I digress. One thing I never noticed when I was there before was the level of version control. In most Smalltalk systems, the lowest level we version is the method. In other systems (this is not just statica, but also to the land of sciptor), the lowest level is the file. I think having version control at a lower level makes life a lot easier! For one there's less text to deal with (typical Smalltalk methods are less than 7 lines and I would say that even that number might be closer to 3). You see exactly the methods you changed and if someone wants to get fancy and reformat all of your code, you can easily see the changes. It also means we not susceptible to someone rearranging methods in a different order. And lastly, it's great when we have to merge. Merging is no FUN, but when the merge is at a lower level, there's less mergining inside of a method. It seems to me that version control at the file level can be quite messy if you are not careful. It would be great to see method level version control in other systems. It seems strange only to be in Smalltalk. But, count it as another item that makes me more productive and love Smalltalk more.

No comments: