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
3) patch -p0 < ../../patches/lastnightswork.txt
4) ***HOPEFULLY EVERYTHING GOES WELL HERE ****
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.