EDIT: a quanto pare, anche la soluzione precedente sotto effetto solo nella pagina stat "Files", che non è interessante. Sto cercando di trovare qualcosa di meglio. La linea che dobbiamo risolvere è 254, questo:
lines = getpipeoutput(['git rev-list --pretty=format:"%%at %%ai %%aN <%%aE>" %s' % getcommitrange('HEAD'), 'grep -v ^commit']).split('\n')
tentativo precedente era:
Purtroppo, sembra che git non fornisce opzioni per una facile filtraggio per i file in un commit (nel registro git e git rev-list). Questa soluzione in realtà non filtra tutte le statistiche per determinati tipi di file (come le statistiche sui tag), ma lo fa per la parte che calcola l'attività in base al numero di linee modificate.
Così il meglio che ho potuto venire in mente è alla linea 499 di gitstats (script principale):
res = int(getpipeoutput(['git ls-tree -r --name-only "%s"' % rev, 'wc -l']).split('\n')[0])
È possibile cambiare la situazione o l'aggiunta di un tubo nella grep nel comando, in questo modo:
res = int(getpipeoutput(['git ls-tree -r --name-only "%s"' % rev, 'grep \\.py$', 'wc -l']).split('\n')[0])
O, si potrebbe dividere la parte 'wc -l', ottenere l'output di git ls-albero in una lista di stringhe, e filtrare i nomi dei file risultanti utilizzando il modulo fnmatch (e poi contare il linee in ogni file, possibilmente usando 'wc -l') ma suona come eccessivo per il problema specifico che stai tr per risolvere.
Ancora non risolve il problema (il resto delle statistiche ignorerà questo filtro), ma si spera utile.
Ho pensato brevemente di scrivere la mia soluzione. Grazie per avermi alleviato. –
è ancora in fase di sviluppo? è esattamente quello che stavo cercando, ma ho bisogno che le linee di codice nel tempo siano influenzate dalle stesse esclusioni. – danb