Quale timestamp utilizzare quando si estraggono i file da un sistema VCS?

0

Ieri, un collega mi ha chiesto come configurare il nostro VCS per timestamp la copia locale dei file estratti dal repository con il tempo di modifica nel repository. Ho sempre creduto che dovessero essere sovrastampati con il tempo in cui venivano tirati in modo tale che, se apporti una modifica, costruisci, poi torni indietro sovrascrivendo il file modificato con la copia del repository, tutto ciò che dipende da quel file verrà creato correttamente. / p>

Ci ho pensato durante la notte, ma non sono riuscito a trovare una buona ragione per avere il timestamp con il tempo di modifica del repository. Quali sarebbero i vantaggi di farlo in quel modo?

(Domanda bonus: il tempo di modifica del repository e il tempo di modifica locale sono le uniche strategie di timestamping di cui sono a conoscenza. Ci sono altri in uso dai sistemi VCS?)

    
posta Niall C. 19.10.2010 - 16:58
fonte

2 risposte

2

Vedi gli strumenti nei contesti per cui sono stati creati. I sistemi di controllo della versione sono fatti principalmente per tenere traccia del contenuto dei file sorgente. Solitamente tracciano solo pochi metadati di file (bit eseguibili, di solito), perché non è necessario per la gestione del codice sorgente. Il timestamp del file sul disco deve essere modificato ogni volta che il file viene effettivamente modificato sul disco locale in modo che gli strumenti di compilazione locali si comportino correttamente. Se dici che è necessario il timestamp per essere in grado di dire quale file è quale, beh, il sistema di controllo della versione è lì per dire quale file è che per mezzo di tutte le versioni controllate.

Se ciò di cui hai effettivamente bisogno non è uno strumento di gestione del codice sorgente ma uno strumento di implementazione o di backup, allora dovresti utilizzare uno strumento creato appositamente. Tutti gli strumenti sono quell'area, come tar, rsync, rpm, dpkg, conserva i timestamp di modifica dei file e altri metadati, perché ciò è necessario o auspicabile per il loro lavoro.

    
risposta data 19.10.2010 - 20:57
fonte
1

In generale, se si utilizza la data / ora del repository, tutto è coerente su più macchine se si utilizza il tempo di pull che non si ha un indizio.

Inoltre, se usi il timestamp di commit puoi vedere, semplicemente guardando il file, quando è stato modificato l'ultima volta mentre se usi il tempo di pull ... beh, tutto quello che sai è l'ultimo tempo di pull.

Questo diventa particolarmente divertente se, ad esempio, stai cercando di capire se il file su un sito web è giusto e quali file (quando è un numero piccolo da un sito bit) devono essere aggiornati.

Ora che mi sono calmato un pochino capisco effettivamente cosa intendi per i problemi di costruzione, ma in modo pragmatico è abbastanza facile forzare una ricostruzione completa (o dovrebbe essere) ma una volta che hai perso un timestamp non puoi riprendilo.

In parole povere, ho sofferto molto facendolo a modo tuo e ho evitato molto facendolo nell'altro modo (anche se questo può a sua volta essere un riflesso degli strumenti di sviluppo e dei problemi di distribuzione che ho)

    
risposta data 19.10.2010 - 18:59
fonte

Leggi altre domande sui tag