Friday, November 16, 2007


I would now like to describe to you my workflow.

Preperation Steps: (done only once... ever!)
1) download the trunk of mozilla
2) get a script that will update the code from cvs (./
3) get mozconfig for an optimized build
4) get a script that will set the mozconfig and build optimized
5) repeat steps 3-4 for debug build
6) build optimized (via script ./
7) build debug (via script ./

Start of coding session
1) ./
2) ./
3) patch -p0 < ../../patches/lastnightswork.txt
5) ./

Writing, Compiling, Running (testing)
1) edit via xCode
2) compile via commandline window (script specific to an incremental build... ./
3) use xCode GDB debugger to run/debug
4) run the program -P tester --no-remote

End of Coding Session (time for sleep)
1) cvs diff -u8p > ../../patches/thisnightswork.txt
2) patch -R -p0 < ../../patches/thisnightswork.txt

In the end I am left with two artifacts
Artifact A) a nightly patch (sometimes more than one if I want to "save my work" ie ive made some sort of progress worth preserving)
Artifact B) a clean sourcetree, free of any tampering

However, there is a problem with Start of coding session #4. What if there is a conflict between my last night patch, and the current state of the source tree?
I have to edit by hand :( This has once added 2hours!

Please! Someone rescue me. Teach me how I can write some sort of script or some sort of GUI merging program for full source vs diffs which saves my clean tree and nightly patch!


On a side note, I would really love it if I were to write some little program that could follow my code progress as a living organism sorta thing... like allow me to view the code files I am editing in time-lapsed photography style video.

No comments: