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

Reply via email to