[lug] Structuring Mercurial projects (kinda off topic)

Michael J. Hammel mjhammel at graphics-muse.org
Tue Mar 30 09:16:14 MDT 2010

The HW guys at work have asked me to help them structure their source
trees for new and ongoing hw projects.  We're using Mercurial and all
dev is being done on Linux boxes.  I have one structure in mind but was
wondering if anyone who's working on multiple hardware projects would
view such a structure.

Top level Mercurial projects:
JTAG: debugger config files, CPLD, etc.
System Build:  cross-compiler, bootloader, rootfs
Kernel:  Linux versions specific to various boards
Libraries:  User space
VHDL: VHDL, FPGA and Firmware related files
Applications:  user space
Test Tools:  developer tools not delivered to clients
Metabuild:  packaging of deliverables from multiple other trees.

I've already created the system-build tree and brought it up (the build
works for the only board ready to use it). FWIW, it uses uboot and
buildroot, with the latter split into the cross compiler build and the
rootfs build to avoid cross contamination during the builds and to avoid
having to rebuild the xcc every time the rootfs is rebuilt.

I'm curious if anyone has done something like this and how they deal
with multiple boards in each tree.  Under CVS I would use, for example,
Board1 and Board2 branches for the kernel development, JTAG or VHDL
stuff.  Mercurial doesn't really have brances, as I understand it, so
I'm not sure how branch structures would work under Mercurial.  I've
never used git but suspect they do stuff like this all the time in the
kernel dev trees.

Any tips welcome.  Thanks.
Michael J. Hammel                                    Principal Software Engineer
mjhammel at graphics-muse.org                           http://graphics-muse.org
He doesn't have ulcers, but he's a carrier.
-- From a real employee performance evaluation.

More information about the LUG mailing list