[Anthill-dev] Some Anthill OS patches
Jim Hague
jim.hague at acm.org
Mon Oct 29 05:39:54 CST 2007
I've accumulated a few modifications to Anthill OS that might be of wider
interest. I recently made time to have a play with Mercurial's patch queues,
and so have some patches against current CVS.
These patches are, in order:
build-log-scanner
Scan build log for up to 4 regular expressions and apply different
highlight colours to the build display. I use this to highlight
builds with warnings in orange.
svn-noauthor-tags
Fix Subversion adapter to cope with '(no author)' author name. Fix mailed
to Anthill list some time ago by Philip gnugy at rogers.com., but not in CVS.
newline-at-end-of-version-file
The version adapter doesn't put a newline at the end of the version file.
I find I prefer one to be there to remove diff chatter.
jdk-5-import-adjustment
Adjust a couple of imports so that Anthill OS builds under JDK 5
and later.
svn-checkout-happens-twice
Each time the Subversion adapter does a checkout, it does it twice.
bad-line-endings
Fix up some line ending brouhaha in the sources.
track-checkout-by-rev-id
A bit of a big one, this. Explanation below.
add-mercurial-repository-adapter
Add a repository adapter for Mercurial (http://www.selenic.com/mercurial).
Requires track-checkout-by-rev-id.
I'll mail them in separate messages. They are also available in a Mercurial
repository at http://hg.lunch.org.uk/Anthill. The repository is an import of
the Anthill OS CVS, with the above changes as patches, so you'll need to
do 'hg qclone' followed by 'hg qpush -a' to get all the patches applied.
track-checkout-by-rev-id. Right now Anthill marks the point at which it does a
built with a date/time with 1 second resolution. Changeset based VCS allow a
more precise specification, the revision number, which can also be used as
the target of the tag to ensure that what is tagged is *exactly* what was
built. Also, at least one distributed VCS (yep, Mercurial) can't tag by time;
time could mean either time the change was originally commited, or time the
change hit this repository and it keeps neither. So this change switches
Anthill to record the build point with an identifier from the VCS adapter,
and changes the Subversion adapter to use changeset number instead of date.
Along the way I fixed up a pet peeve (tagged sources are not the built
sources), skip checkout when checking for new changes if the VCS can do that,
and added a proper 'Do you want incremental builds?' option. I don't know how
well it will all work with the other repository adapters, which are unchanged
and use date/time as before.
--
Jim Hague - jim.hague at acm.org Never trust a computer you can't lift.
More information about the Anthill-dev
mailing list