Appunti su Mercurial e OS X
23 Gennaio 2015
Questa settimana ho finalmente trovato il tempo per sistemare alcuni piccoli problemi nel mio flusso di lavoro – in inglese verrebbero definiti paper cuts, taglietti piccoli ma fastidiosi.
Tralasciando il consiglio di installare le versioni più aggiornate di software come Git e Mercurial (personalmente preferisco installer nativi a MacPort o Homebrew), approfitto di questo post per alcuni appunti su editor di testo e Mercurial in ambiente OS X.
Editor di testo
Il mio editor di testo principale è Sublime Text 2 (ST2). Ho installato anche TextMate 2 e Atom (provato solo superficialmente finora), ma il 90% del tempo utilizzo ST2. Non amo gli editor da terminale: non ho mai trovato il tempo e la voglia di imparare a usare vi, se proprio tocca (es. sessione remota su server) c’è nano.
Per avviare ST2 direttamente da terminale è sufficiente creare un link all’apposito comando sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /bin/subl
TextMate permette di automatizzare questo processo dalle Preferenze, l’eseguibile si chiama mate
.
L’aspetto fondamentale è che, con entrambi i comandi, è possibile aprire direttamente una cartella nell’editor, es. subl ~
.
Questo è il mio file di configurazione di ST2 (confesso di non essere un grande utilizzatore di plugin):
{ "color_scheme": "Packages/Color Scheme - Default/iPlastic.tmTheme", "detect_indentation": false, "font_size": 12.0, "hot_exit": false, "ignored_packages": [ "Vintage" ], "remember_open_files": false, "rulers": [ 80 ], "spell_check": false, "dictionary": "Packages/Language - Italian/it_IT.dic", "tab_size": 4, "translate_tabs_to_spaces": true, "trim_trailing_white_space_on_save": true }
A differenza di TextMate, che utilizza il dizionario disponibile nel sistema, in ST2 il dizionario italiano va aggiunto manualmente. Fortunatamente il file .dic di Firefox/LibreOffice è compatibile.
Mercurial
Il primo consiglio è crearsi un file ~/.hgignore
per escludere quella piaga dei file .DS_Store (anche se ho iniziato ad usare Asepsis da un po’ di tempo).
# use glob syntax. syntax: glob *.DS_Store
Estensioni consigliate:
- color: utile sia per
hg diff
chehg status
. Per controllare le modifiche di solito utilizzohg diff|mate
, dal momento che la visualizzazione dei diff è molto più chiara in TextMate. - extdiff: permette di utilizzare programmi esterni per il confronto in caso di merge. Al momento è impostato per usare KDiff3.
- purge: è un vero salva-tempo, visto che
hg up -C
non rimuove i file attualmente non sotto controllo di versione. - transplant: permette di ‘trapiantare’ un changeset da un repository all’altro.
Veniamo alla scoperta di questa settimana: ho sempre utilizzato nano per i messaggi di commit, e non era esattamente comodo. La scoperta è che impostare Sublime Text come editor predefinito per Mercurial è davvero banale. In ~/.hgrc
:
editor = /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl --wait
In teoria dovrebbe funzionare anche editor = subl -w
. Nel mio caso non c’è stato verso e non ho investito ulteriore tempo per scoprirne la causa.
L’altra scoperta della settimana è quanto sia veloce (e ben documentato) impostare BitBucket+Mercurial+SSH. Peccato non averci mai guardato prima per pigrizia.
Sempre a proposito di BitBucket: se siete allergici alla riga di comando, SourceTree è una buona alternativa.