Para agregar usuarios a una instalación de mercurial-server, basta con agregar la clave pública de la máquina -desde donde se conectará el usuario- al repo hgadmin.
Para generar la clave pública puede ejecutar los siguientes comandos:
$ ssh-keygen -t rsa $ cat ~/.ssh/id_rsa.pub
Obtenida la clave pública del usuario, deberá pegarla dentro de la carpeta keys/users/ o keys/root/ del repo hgadmin, dependiendo de si quiere que el nuevo usuario sea "ordinario" o "admin", respectivamente. Los admin pueden hacer clone del repo hgadmin (modificar usuarios).
IMPORTANTE: Recuerde que la manera de modificar el repo hgadmin es clonarlo, modificarlo y empujar (push) los cambios al repo principal. NO MODIFIQUE DIRECTAMENTE SOBRE EL SERVIDOR!. Puede seguir los siguientes pasos:
$ mkdir hgadmin-tmp && cd hgadmin-tmp $ hg clone ~hg/repos/hgadmin . $ mkdir keys/users/newuser $ cp ~/newuserkey keys/users/newuser $ hg add * $ hg ci -m "Added newuser to repo" $ hg push
En el momento en que empuje los cambios al repo se agregará automáticamente la nueva clave pública al archivo ~hg/.ssh/authorized_keys, verifíquelo.
Creando un repositorio remoto para compartir entre diferentes usuarios
Debe crear el proyecto en el servidor y luego clonarlo en la máquina donde desee modificar el repositorio. Para ello puede ejecutar los siguientes comandos:
Del lado del servidor
$ cd ~hg/repos/ $ mkdir newrepo && cd newrepo $ hg init $ cd .. $ chown -R hg.hg newrepo
IMPORTANTE: Dar todos los permisos al usuario dueño del proceso "mercurial-server", en este ejemplo: hg
Del lado del cliente
$ mkdir newrepo && cd newrepo $ hg clone ssh://hg@hg.mydomain.com/repos/newrepo .
Listo, nuevo repo creado y preparado para ser utilizado!