I'm hacking on 285 right now, and my initial thought is to the following:

in bringover_hg(), after the 'hg pull -u' is done for the open tree, 
test to see if $CLOSED (defined as $CODEMGR_WS/usr/closed in the env 
file) exists, and if $PARENT_CLOSED_WS (also defined in the env file) is 
set.

if both conditions are true, then we do the 'pull -u'.  so effectively, 
nightly will never do the 'hg clone' for you.  this is inconvenient if 
you want to work on closed code, which afaik, is a good thing. 
(justification: 'closed source is teh sux0r').

but i concede that this is not uber friendly to Sun folks who don't have 
a choice.  so my other thought is in the codepath where it does:
         if [[ ! -d $CODEMGR_WS/.hg ]]; then
                 staffer hg init $CODEMGR_WS
         fi
(at the top of bringover_hg), we see if PARENT_CLOSED_WS is set, and 
also do a 'hg init' for the closed repository (thus causing it to be 
pulled in in my proposed codepath above).

I think that should work, the check_closed_tree() check should allow it 
to go through since the $SRC/Makefile.master check will show that the 
workspace hasn't been initialised yet.

What is slightly tricky (thanks Rich for pointing this out to me) is 
that nightly then runs check_closed_tree() again to check again (to deal 
with pre-split to post-split bringovers).  At this point, 
CLOSED_IS_PRESENT will have already been set, so it won't actually check 
it again.  So I think the 'hg clone' of the $PARENT_CLOSED_WS should 
also explicitly set CLOSED_IS_PRESENT=yes.

Does that make sense?  Or would it help if I just coded this up and 
webrev'd it?

cheers,
steve
-- 
stephen lau // stevel at sun.com | 650.786.0845 | http://whacked.net
opensolaris // solaris kernel development

Reply via email to