2015-06-17 10 views
6

Sto cercando un modo elegante per popolare Mercurial con versioni diverse dello stesso programma, da 50 vecchie versioni con nomi di file numerati: prog1.py, prog2.py. .. prog50.py Per ciascuna versione mi piacerebbe conservare le date e il nome file originale, forse nel commento di modifica.Come salvare molte vecchie versioni numerate di un file

Sono nuovo di Mercurial e ho cercato senza trovare una risposta.

risposta

3

hg commit ha -d per specificare una data e -m per specificare un commento.

hg init 
copy prog1.py prog.py /y 
hg ci -A prog.py -d 1/1/2015 -m prog1.py 
copy prog2.py prog.py /y 
hg ci -A prog.py -d 1/2/2015 -m prog2.py 
# repeat as needed 
+0

Grazie Mark. Sembra abbastanza pratico. Aspetterò solo un giorno o giù di lì nel caso qualcuno conosca un metodo più automatico. – stephenbgood

2

Uno può naturalmente automatizzare il tutto in un piccolo script bash:

si ottiene la data di modifica di un file tramite stat -c %y ${FILENAME}. Così supponendo che i file sono ordinate:

hg init 
for i in /path/to/old/versions/*.py do; 
    cp $i . 
    hg ci -d `stat -c %y $i` -m "Import $i" 
done 

Mente, il nome del file naturale ordinamento è PROG1, prog11 prog12, ... prog19, PROG2, prog21, .... Si potrebbe desidera rinominare prog1 a prog01 ecc al fine di garantire ordinamento normale o ordinare i nomi dei file prima di elaborarli, ad esempio:

hg init 
for i in `ls -tr /path/to/old/versions/*.py` do; 
    cp /path/to/old/versions/$i . 
    hg ci -d `stat -c %y /path/to/old/versions/$i` -m "Import $i" 
done 
+0

Grazie planetografo per la tua risposta che è informativa e probabilmente utile per gli altri. Sfortunatamente per il mio caso di soli 50 file e Windows, sto usando la prima risposta sopra. – stephenbgood

Problemi correlati