If you want to version the built binaries, I would suggest storing them in a subrepo. However, you do not want the subrepo to be a subrepo of the main repository.
Instead, I would recommend configuring as follows:
umbrella_repo/
.hgsub
source_repo/
binaries_repo/
Then you can clone source_repo/
completely independently and develop in it. Your regression setup has a clone of umbrella_repo
, which automatically clones source_repo
and binaries_repo
, and keeps their working directories at the revision they were in when you committed to umbrella_repo
.
When you want to make a new regression checkpoint, in your regression setup:
Do a clean update in
umbrella_repo
, and probably a purge:cd umbrella_repo hg update -C tip hg purge --all
Update to the latest into
umbrella_repo/source_repo
:cd source_repo hg pull hg update -C <revision you want> hg purge --all
Build.
Copy the binaries to
binaries_repo
and commit.Commit in
umbrella_repo
.
Now, when you update to the revision you just committed in umbrella_repo
, it will automatically update to the matching revisions in source_repo
and binaries_repo
.
For more information, look at the Mercurial help on subrepositories. Note in particular that most commands do not recurse into subrepos by default.