On 10/06/2011 06:07 PM, manini wrote:
Ciao a tutti,
Ciao,
Il problema è che io vorrei poter stampare (in pretty print e automaticamente) tutte le varie versioni su PDF (di solito separati). Per il pretty print non c'è problema (enscript e ps2pdf) ma non so come estrarre le versioni. Esempio: la soluzione dell'esercizio sta nel file foo.py, di cui ho prodotto quattro versioni (quattro commit in git) e vorrei estrarle (git show?) una alla volta chiamandole (per esempio) foo-1.py ... foo-4.py, così poi con qualche riga di makefile metto a posto tutto.
Ehm, secondo me, il tuo è un abuso del sistema. È vero che con git si può sempre riscrivere la storia, ma se trovassi un errore nella vesione 1? Come lo correggeresti senza rompere il tuo modo di estrarre le /versioni/? Trova un modo comodo di nominare le versioni e basati su quello, mi sembra che lo hai già, a dire il vero...
Qualcuno ha un esempio dei comandi da usare (ho visto che esiste un "git show master~x:foo.py")? Va bene sia un esempio diretto in git o, meglio, in gitpython.
Al limite se vuoi il diff fra le versioni ti basta un piccolo script. $ for i in 1 2 3 4; do echo $i > file-$i.txt; done; $ LAST=$(find | sort -n | tail -n 1 | sed -e s/[^0-9]//g) $ for i in $(seq 2 $LAST); do diff -Nu file-$((i--)).txt file-${i}.txt; done Manca qualche check (almeno 2 file...) e in python sicuramente viene più elegante! ;-) Se hai cura di passare da file-1.txt a file-2.txt in questo modo: cp file-1.txt file-2.txt git add file-2.txt git commit -m 'any message, maybe use copy' file-2.txt $EDITOR file-2.txt $ git add file-2.txt $ git commit -m 'version 2 for file' file-2.txt Poi git fa il guessing e correttamente trova che il file 2 viene da una copia di 1 se si usa git log --follow file-2.txt Esiste anche un opzione per farglielo fare in automatico (è facile trovarla). Non credo però questo sia ricorsivo, cioè risolve anche che 3 viene da 2 che viene da 1... o se sei costretto a passare da 2 a 1 di nuovo con un altro comando. Poi appunto è un guessing a posteriori che immagino abbia i suoi problemi di prestazioni, ma penso che per progetti di medie dimensioni sia ragionevole, ma questo, è sua volta un mio guessing... Spero di averti convinto, o per lo meno messo qualche dubbio... Buona serata, Daniele -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx