CS371P #7

I enjoyed last weeks article on Object Oriented Design. I’ve previously read about those two parts of our brain and the differing functions, but I never read that they can disagree or even conflict. That’s a bit of a revelation and good food for thought as well as further study. Starting to study for round 2 of exams this week I intend to improve my test taking skills by thinking about the S1/S2 brain. I need to make sure and use my S2 for the test, and leave S1 in the hall.

I intend to work with partners for the remaining projects and did so for proj 4. Again it’s a good experience fun to work with someone.

Having worked with partners for the last 2 projects and using git with another person illuminates how git is different from my previous SCCS experience (primarily, cvs, svn and perforce, which are centralized systems).

What git calls a commit does not equate to a commit in the old systems in at least one way. As I wrote previously the commit was something of a sacred, revered step that required a degree of respect from the committer to make certain of the changes being committed. In the centralized model when you make a commit you’re submitting your mods to the central repository. This makes them officially a part of the product for all your peers to see and begin using.

With git, as we all know, the commit doesn’t necessarily make changes available to anyone else. Rather it’s the push to a “central” repo that equates to the old commit, at least in this way. Interesting.

Also discovered another interesting side effect of using the git repo for our acceptance test files. We generated our test data using nice big ranges for our randoms and the files came in in the 100MB range. Add a pair of those to git, then re-gen your input file a few times and re-commit them to git and you pretty easily can eat up a half a GB. I searched and there is a way to flatten git’s content history, but it’s not straightforward. Maybe not an ideal use for git when you have big files where maybe just a straight file repo would suit. Something to keep in mind. I now see that my proj4 dir is coming in at 500MB due to the git history of those big test files. Note that just doing a “git rm ” doesn’t recover the space! :-)