External folks: the mechanics of "hg push" are familiar to you by now, but
the extra cruft surrounding the gate, clone, and ON integration rules may
or may not be.
THIS NOTE IS NOTE AN INDICATION THAT THE GATE HAS REOPENED. IT HAS NOT.
We expect to coordinate the first couple of pushes this evening or
tomorrow, for now we're making sure to dot our i's and cross our t's in
getting the gate and build machines converted.
Heads up: Here's how you will push your changes to the Mercurial gate
Important: Steps 2 and 3 below are carefully ordered. If you are making
coordinated changes to both open and closed repositories, you must push
your closed changes first.
There is an automated incremental build triggered by pushes to the
open repository, pushing your changes to the open repository first
would cause an incremental build to start in a workspace not
containing your closed changes, leading to almost certain failure.
You should NOT login to the gate machine to do your push. Your local
machine is fine. From there:
1. Get your RTI approved
2. If you have changes in usr/closed, then follow steps 4-5 for
GATE=ssh://onhg at onnv.sfbay.sun.com//export/onnv-gate/usr/closed
CLONE=ssh://onnv.sfbay.sun.com//export/onnv-clone/usr/closed
3. If you have changes in open source, then follow steps 4-5 for
GATE=ssh://onhg at onnv.sfbay.sun.com//export/onnv-gate
CLONE=ssh://onnv.sfbay.sun.com//export/onnv-clone
4. Make sure you're in the correct repository (open vs closed), then
hg reparent $GATE
hg pbchk
# if output is clean, go on to step 5
# otherwise, cleanup repository
hg recommit
# go back to "hg pbchk" above
5. hg push
When pushing to the onnv gate, you must push as the user 'onhg'
(as in the GATE paths above). Your regular user account does not
have write access to the gate.
This will seem to take a long time, because some of the sanity and
RTI checking hooks must perform database queries on systems other
than the gate machine. You won't see much output in real time as
the output is unavoidably buffered. Just sit tight, it's working.
If this fails, it will give you an explicit error message telling you
why. Fix the problem, then go back to step 2.
If the problem is "would create multiple heads," then "fix the
problem" means that you need to pull from the clone and merge with
any changes:
hg pull -u $CLONE
hg merge
# review/sanity check results of merge
hg commit
hg recommit
# go back to step 4
Questions to scm-migration-dev at opensolaris.org.
--Mark