Friday, November 16, 2007

PLEASE SAVE My Workflow

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 (./browser-update.sh)
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 ./build-opt.sh)
7) build debug (via script ./build-deb.sh)

Start of coding session
1) ./browser-update.sh
2) ./build-opt.sh
3) patch -p0 < ../../patches/lastnightswork.txt
4) ***HOPEFULLY EVERYTHING GOES WELL HERE ****
5) ./build-deb.sh

Writing, Compiling, Running (testing)
1) edit via xCode
2) compile via commandline window (script specific to an incremental build... ./gfxmake.sh)
3) use xCode GDB debugger to run/debug
4) run the program MinfieldDebug.app/Contents/MacOS/firefox-bin -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: