Tuesday, October 7, 2008

Config Management and TortoiseSVN

TortoiseSVN

This assignment seemed to be much more overwhelming than any of the past assignments. By configuring TortoiseSVN (which oddly enough isn't slow at all) to Dr. Johnson's stack project, each one of us ICS 413 students modified the project in some way to (hopefully) better the overall status of the project.

Rolling Up the Sleeves....

I don't know if its my fever and headache affecting my thoughts, but it seemed as though this assignment required much more setup than the previous tools. The installation to TortoiseSVN was the easiest part of the assignment. But afterward installation was complete, there are so many URLs to keep track of.
https://stack-johnson.googlecode.com/.....
http://code.google.com/hosting
http://groups.google.com/group/stack-johnczly-discuss
And not to mention there's the codesite-noreply@google.com to add to the discussion group, and the googlegroups email address to add to the project page for update and commit email notifications. I'm getting another headache just remembering the process. I found myself constantly referring back and forth from the assignment page and the google pages. This can create quite the confusion. Hopefully after the lab and the next project, the process will be burned into my brain. I'll know how to do all these trivial tasks of setting up projects like I know the back of my hand.

Doing My Part

Well, we don't have an assigned role or assigned area of focus to work on. So my part is not clearly defined. Basically my goal was to change something I felt was beneficial to the project and avoid corrupting its current state. It's amazing no conflicts seemed to have occured so far with so many students working on the stack. I was worried, since I started the assignment late. Had there been an error, I don't know if I can contact the previous commiter to fix it in time.

Anyways once I updated and verified the stack, I noticed the coverage was not at 100%. My first intentions were to increase the percentage slightly (leaving some work for others). I thought the stack was identical to the assignment we've been working on all semester. But turns out, it was different. EmptyStackException has three constructors, and only one was being covered in our JUnit testing. I couldn't quite figure out how to get the other two constructors to be covered, but I thought something such as the following
throw new EmptyStackException("Empty Stack");
Unfortunately, PMD complained and I couldn't come up with a solution to solve both problems. To save time, I noticed that there was some inconsistency between JUnit test cases involving expected exceptions. I fixed that problem and moved on. Hopefully someone will improve the coverage. I can keep track of it now with TortoiseSVN's log.

Reflection of This Long Assignment

Everything is so public in these assignments. It really adds pressure to check your work. Everyone can see who was the last to edit the project and who is to blame if something stops working.

I know google project hosting is free. But seeing as how group members of a project would love to receive notice updates, Google should have combined the best of two worlds and created a mailing utility within the Google Project page. That way there is no need to create an additional group and mailing list. They basically ask for similar information. Referring back and forth between Google Groups and Google Project is kind of a pain. That is just my opinion. Then again, it could be the Tylenol talking.

In addition to these lessons, there is one more I learned. Take your flu shots. Programming while sick sucks.

This was an eye-opening experience. It shows that a team is useful in more than just offering you help. They are also there to place blame! There's no lying with TortoiseSVN. Hopefully, my commit didn't cause any problems. I checked with verify before commiting. Build was successful.

No comments: