Wednesday, September 15, 2010

How to use hg by ssh at LaCIM

D'abord, je vérifie que hg est bien installé sur le serveur :
$ ssh USERNAME@thales.math.uqam.ca
Password:
Last login: Wed Sep 15 12:56:35 2010 from 1.1.1.1
thales:~ USERNAME$ hg version
Mercurial Distributed SCM (version 1.3.1)

Copyright (C) 2005-2009 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Ensuite, je teste si je peux utiliser Mercurial via ssh en mode non interactif :
sbeaudry:~ slabbe$ ssh USERNAME@thales.math.uqam.ca hg version
Password:
bash: hg: command not found
Je me reconnecte au serveur ssh et j'édite le fichier .bashrc afin d'ajouter dans le PATH le chemin où se trouve Mercurial.
$ ssh USERNAME@thales.math.uqam.ca
Password:
Last login: Wed Sep 15 13:00:18 2010 from 1.2.6.4
thales:~ USERNAME$ which hg
/usr/local/bin/hg
thales:~ USERNAME$ cat .bashrc
export PATH=/usr/local/bin:$PATH
Je me déconnecte à nouveau et je teste si je peux utiliser Mercurial en mode non interactif :
$ ssh USERNAME@thales.math.uqam.ca hg version
Password:
Mercurial Distributed SCM (version 1.6.3+20100826)

Copyright (C) 2005-2010 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Ça fonctionne!

Ensuite, je peux utiliser Mercurial pour synchroniser des répertoires (via push, pull et update). Pour le répertoire de mon site web, j'ai initialisé avec hg init mon répertoire Sites. Ensuite, j'ai fait un clone de la manière suivante:

hg clone ssh://USERNAME@thales.math.uqam.ca//Users/USERNAME/Sites Sites

Puis, j'ai édité le fichier .hg/hgrc sur ma machine locale dans le répertoire de mon site web de la manière suivante :
# file .hg/hgrc
[paths]
default = ssh://USERNAME@thales.math.uqam.ca//Users/USERNAME/Sites
Au LIRMM, j'ai édité le fichier .cshrc (plutôt que le .bashrc) de la manière suivante :
# fichier : .cshrc
# Ajout par Slabbe en mars 2010
# http://web.bilkent.edu.tr/Online/unixman/subsubsection3_3_6_1.html
# Set path shell variable
# (See description of path in the paragraph followin this example .cshrc)
set path = ( /usr/bin /usr/local /usr/local/bin /usr/bin/X11 \
/usr/ucb /usr/opt/bin ~ )