Setup ====== All'indirizzo https://hg.thux.dev è installato un server Heptapod, ovvero un clone di gitlab per repository mercurial. Heptapod utilizza l'ultima versione di mercurial che permette un workflow particolarmente interessante basato sui `topic`. La possibilià di revisione del codice e di collaborazione che ne deriva è particolarmente interessante. Account sul server ------------------ È necessario che ognuno abbia un account sul server e che abbia installato la chiave ssh di accesso. Proseguite quando avete accesso al server. Installazione locale --------------------- È opportuno che ci allineiamo tutti all'ultima versione mercurial in modo da avere a disposizione le ultime feature, in particolare: * histedit (>=2.3) * absorbe (>=4.8) * topics/evolve (>=5.2) Per farlo suggerisco una modalità che dovrebbe portarvi ad avere hg e tortoise installati ma per questo non possiamo usare `apt-get` in quanto i pacchetti non sono ancora disponibili. mercurial ......... Consiglio di fare tutta l'operazione come root:: sudo -s apt install virtualenv PY_VER=$(python3 -c "import sys; print(sys.version[0:3])") cd /usr/local/share rm -Rf hg virtualenv --system-site-packages -p /usr/bin/python$PY_VER hg cd hg . bin/activate pip install Mercurial==5.8.1 'hg-evolve>=10.3' 'hg-git>=0.10' cd /usr/bin mv hg hg.orig ln -s /usr/local/share/hg/bin/hg Possiamo uscire da root e verificare che hg è alla versione corretta:: $ hg --version Mercurial SCM Distribuito (versione 5.4) ... configurazione personale ......................... Nota che hg-git non è strettamente necessario. Ora configuriamo hg per leggere una configurazione che: * abiliti i nuovi plugin * ci permetta di avere un output più utile Mercurial legge sia il file ``~/.hgrc`` che il file ``~/.config/hg/hgrc``, sfrutto questa caratteristica per mettere una configurazione condivisa su ``.config/hg`` e quella personale (username ed eventuali personalizzazioni, ad esempio alias) in ``~/.hgrc``:: cd ~/.config hg clone ssh://git@hg.thux.dev/tools/conf/hg-conf hg tortoisehg ............ Le versione di Python deve essere esplicitata in chiaro e deve essere la medesima di prima, possibilmente quella di default del sistema:: sudo -s cd /usr/local/share/ PY_VER=$(python3 -c "import sys; print(sys.version[0:3])") wget https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-5.8.1.tar.gz apt install python${PY_VER%.*}-pyqt5 python${PY_VER%.*}-pyqt5.qsci tar xzf tortoisehg-5.8.1.tar.gz rm -f tortoisehg ln -sf tortoisehg-5.8.1 tortoisehg cd tortoisehg cat <<- EOF > thg.sh #!/bin/sh . /usr/local/share/hg/bin/activate /usr/local/share/tortoisehg/thg EOF chmod +x thg.sh cd /usr/bin mv thg thg.orig ln -sf /usr/local/share/tortoisehg/thg.sh thg A questo punto dovreste avere una versione 5.8.1 to `tortoisehg`. Quella vecchia -se esisteva- dovrebbe essere disponibile come `thg.orig`