andrew 04.05.09
Ok, this is going to be nothing new for those of you who have gone through the 5 minute tutorial on the bzr website. I’m going through it again here, so the rest of this follows. First, I created a directory like this:
% ls -R myProject
0 myDir/ 8 test1.txt 8 test2.txt 8 test3.txt
myProject/myDir:
total 0
0 test4.txt
All of the .txt files have the line “Initial Content” in them. Once this was setup, I did the following:
put myProject under management.
[andrew karma] /Users/andrew/Development/BZR/myProject
>>>>>> bzr init
Created a standalone tree (format: pack-0.92)
add the files in myProject to bzr
[andrew karma] /Users/andrew/Development/BZR/myProject
>>>>>> bzr add
adding myDir
adding test1.txt
adding test2.txt
adding test3.txt
adding myDir/test4.txt
finally, commit
[andrew karma] /Users/andrew/Development/BZR/myProject
>>>>>> bzr commit -m “First Commit”
Committing to: /Users/andrew/Development/BZR/myProject/
added myDir
added test1.txt
added test2.txt
added test3.txt
added myDir/test4.txt
Committed revision 1.
more »
andrew 04.04.09
First, some background. I work in a fast paced development shop, with a team of very talented engineers. We are currently using CVS to manage our codebase. In the not too distant past, we were actively working on as many as four different branches. Keeping code appropriately syncronized between the various branches was exceedingly difficult. I’ve been working on a little coding in my spare time, and figured now was as good a time as any to educate myself on some of the newer version control systems. I started playing around with GIT, and didn’t really see a clear line towards what I want to accomplish. Bazaar seemed to be explicitly designed to handle several different workflows. Also, it is more similar to CVS than GIT, which can be both good and bad, but things worked a little more like I expected them to with bazaar. Anyway, what do I want to do with version control?
In short I think I’d like to see a main branch, what CVS likes to call HEAD. Several release branches for maintenance, and any number of feature branches. I envision HEAD, and the release branches to be “officially” managed, while developers are more or less free to branch for features as they need to. What this requires, is some sane way to ensure that code reaches HEAD/the appropriate maintenance branch when it’s needed. With as little hell as possible. Merging branches in CVS is an f’ing nightmare.
So, given that I like what I’ve seen from bazaar so far, and a very loose idea of where I want to get, I’m going to start seeing how well bazaar fits. I’ll post what I find.
andrew 05.01.08
Marco Polo is software that you can use to make your laptop “location aware.” You set up a series of predicates based on things like visible wifi networks, ip address, external monitor, usb devices, etc. Marco Polo will evalute each of the predicates and come up with a score that it uses to determine where you are. For example my work desk and my work mobile profiles are very similar, but when I’m not connected to my desktop monitor the mobile profile is ranked slightly higher.
You can preform a bunch of built in actions like changing default printer, changing wallpapers, etc. but the really cool thing is that you can run an arbitrary shell script. When I plug in at work I automatically nfs mount our file server. When I’m at home and my vpn is up, I automatically sshfs mount the fileserver. My environment at home is automatically setup to be the same as my environment at work. It’s cool stuff and worth checking out.
andrew 04.29.08
I’ve been using a really cool piece of software recently. Selenium is designed to automate testing of web applications, but I’ve found that it’s fantastic for web automation as well. I have a script that will compile, install, and configure the project I’m working on. It uses vmrun to manage the vmware images, and selenium to do the post install configuration.
You can record your test using the Selenium IDE (available for firefox). Once you get your test (or automation tasks) recorded you can export that test to the language of your choice. The recorded tests normally need a little bit of tuning, but the IDE does a very good job of getting you 80 – 90% of the way there. That script can then be run against the Selenium RC (remote control) server. It drives a web-browser to preform the actions you tell it to.
Cool stuff.