* David Powell <David.Powell at sun.com> [2008-12-16 22:00]: > Mark J. Nelson wrote: > > - project gate management: as relates to above, best practices, managing > > synchronization from either clone or snapshot > > Very important. Setting up a project gate, notification lists, etc. > is a lot more complicated than it was. The easy answer is "make an > opensolaris project", but that's not always appropriate.
It's different than it was, but I'm not sure it's more complicated. In the interest of giving Mark source material, here's what I've done a few times now. 1. Create a project account on the machine hosting the project gate. Insert committers' public keys into project account's .ssh/authorized_keys file, or agree on a common password. (This approach is easier than working out umask issues.) 2. Use the notify extension for sending push notifications. Have a mode 0666 file in .hg/SUNWnotify to contain the list of addresses. I've been using $ cat .hg/hgrc [extensions] hgext.notify = [hooks] # one email for each incoming changeset incoming.notify = python:hgext.notify.hook # batch emails when many changesets incoming at one time changegroup.notify = python:hgext.notify.hook [email] from = Certificate Gate <pkg at rosseau.sfbay.sun.com> [smtp] host = localhost [notify] sources = serve push pull bundle diffstat = False test = False config = /dpool/pkg/cert-gate/.hg/SUNWnotify domain = eng.sun.com maxdiff = -1 and $ cat .hg/SUNWnotify [usersubs] sch at sun.com = * daniel.price at sun.com = * You could of course use NetAdmin to manage alias membership, and keep your SUNWnotify file 0600. 3. That's it, although you can fiddle with notify settings and templates to get all kinds of outcomes. Some teams might like to run hg serve to make their project gate browsable. If you're trying to talk about advantages, I think it's worth mentioning how easy it is to export and import patches, which is something we've used on pkg(5). Very convenient for passing around small fixes. - Stephen -- sch at sun.com http://blogs.sun.com/sch/