Giulio@797: Giulio@797: #!/usr/bin/env python Giulio@797: # Giulio@797: # salvate il file come .hg/controllo_spazio_bianco.py e rendetelo eseguibile Giulio@797: Giulio@797: import re Giulio@797: Giulio@797: def spazio_bianco_in_coda(righe_di_diff): Giulio@797: # Giulio@797: numriga, intestazione = 0, False Giulio@797: Giulio@797: for riga in righe_di_diff: Giulio@797: if intestazione: Giulio@797: # ricorda il nome del file coinvolto in questo diff Giulio@797: m = re.match(r'(?:---|\+\+\+) ([^\t]+)', riga) Giulio@797: if m and m.group(1) != '/dev/null': Giulio@797: nomefile = m.group(1).split('/', 1)[-1] Giulio@797: if riga.startswith('+++ '): Giulio@797: intestazione = False Giulio@797: continue Giulio@797: if riga.startswith('diff '): Giulio@797: intestazione = True Giulio@797: continue Giulio@797: # intestazione - salva il numero di riga Giulio@797: m = re.match(r'@@ -\d+,\d+ \+(\d+),', riga) Giulio@797: if m: Giulio@797: numriga = int(m.group(1)) Giulio@797: continue Giulio@797: # corpo - cerca una riga aggiunta con spazio bianco in coda gpiancastelli@840: m = re.match(r'\+.*[ \t]$', riga) Giulio@797: if m: Giulio@797: yield nomefile, numriga Giulio@797: if riga and riga[0] in ' +': Giulio@797: numriga += 1 Giulio@797: Giulio@797: if __name__ == '__main__': Giulio@797: import os, sys Giulio@797: Giulio@797: aggiunte = 0 Giulio@797: for nomefile, numriga in spazio_bianco_in_coda(os.popen('hg export tip')): Giulio@797: print >> sys.stderr, ('%s, riga %d: aggiunto spazio bianco in coda' % Giulio@797: (nomefile, numriga)) Giulio@797: aggiunte += 1 Giulio@797: if aggiunte: Giulio@797: # salva il messaggio di commit in modo da non doverlo digitare di nuovo Giulio@797: os.system('hg tip --template "{desc}" > .hg/commit.save') Giulio@797: print >> sys.stderr, 'messaggio di commit salvato nel file .hg/commit.save' Giulio@797: sys.exit(1) Giulio@797: