Come posso ottenere una copia di tutte le versioni di un file dal repository di Subversion?
-
27-10-2019 - |
Domanda
Abbiamo un carattere personalizzato (TTF) che abbiamo aggiunto a un repository di sovversione. Abbiamo rilevato un problema con determinati personaggi e non siamo sicuri quando è stato introdotto il problema. Il file è ovviamente un file binario, quindi non ci sono differenze di testo da confrontare, avevamo solo bisogno di contenerlo con gli altri file di progetto e la versione. Comunque, vorrei recuperare tutte le versioni del file dal repository. Ho accesso a TortoisVN (per Windows) e Cornerstone (per Mac); Tuttavia, mi sento anche a mio agio nell'uso del terminale. Come posso recuperare un file TTF per ogni versione del carattere che è stato controllato in Subversion?
Soluzione
Questo è un po 'grezzo e sono sicuro che ci sono soluzioni molto più eleganti là fuori, ma fa il lavoro. Imposta grab_file e grab_from_rev in modo appropriato.
$ mkdir versions
$ GRAB_FILE="MGSource.h"
$ GRAB_FROM_REV=700
$ for i in `svn log -r$GRAB_FROM_REV:HEAD "$GRAB_FILE" | grep -o '^r[0123456789]*'`; do svn up "$GRAB_FILE" -$i; cp $GRAB_FILE versions/"$GRABFILE.$i.h"; done
Updated to revision 768.
U MGSource.h
Updated to revision 770.
U MGSource.h
Updated to revision 804.
U MGSource.h
Updated to revision 821.
$ ls -l versions/
total 56
-rw-r--r-- 1 me staff 1599 Mar 18 21:03 MGSource.r709.h
-rw-r--r-- 1 me staff 1705 Mar 18 21:03 MGSource.r759.h
-rw-r--r-- 1 me staff 1891 Mar 18 21:03 MGSource.r760.h
-rw-r--r-- 1 me staff 1882 Mar 18 21:03 MGSource.r768.h
-rw-r--r-- 1 me staff 2009 Mar 18 21:03 MGSource.r770.h
-rw-r--r-- 1 me staff 2009 Mar 18 21:03 MGSource.r804.h
-rw-r--r-- 1 me staff 1942 Mar 18 21:03 MGSource.r821.h
Altri suggerimenti
Se stai usando TortoisVN, puoi ottenerlo molto facile:
Mostra il registro per il file font. Vedrai un elenco di revisioni in cui quel particolare file è stato modificato. Fai clic con il tasto destro su una di queste revisioni, quindi scegli "Salva come ..." dal menu di contesto e otterrai il file come era in quella revisione.