2010-01-20 33 views
9

C'è un modo in cui è possibile eseguire il commit nel repository SVN con data/ora precedente o come modificare il commit di data/ora/post?commit SVN con data/ora precedente

devo alcune fonti archiviati che sono molto vecchio, molto prima che ho iniziato ad usare SVN, e vorrei ora di metterli in SVN e, se possibile, per preservare la loro data originale, in modo che la storia SVN corrisponda alla data reale dove sono stati modificati i file.

Manipolare il tempo del server SVN è un'opzione ovvia, ma non può essere utilizzato qui, poiché il server SVN è fuori dal mio controllo.

+0

È un repository esistente o uno nuovo? Sovrascrivere le directory e/oi file nel repository? –

+0

Un repository esistente, nel commit iniziale non sovrascriverò alcun file, ma alcuni di essi verranno sovrascritti in seguito. Ho un sacco di file di archivio come sources-1995-05.zip, sources-1995-08.zip, sources-1996-01.zip e mi piacerebbe trasferire i loro contenuti su SVN e avere date come 1995/08/xx e 1996/01/xx con i rispettivi commit. – Suma

+0

Correlati: http://stackoverflow.com/questions/633353/change-the-timestamp-of-a-svn-revision –

risposta

1

Quello che ho fatto alla fine è stato:

  • server di installazione VisualSVN sulla mia workstation
  • creare un nuovo repository "locale" SVN
  • prendere gli archivi ad uno ad uno, per ogni:
    • nella copia di lavoro cancella tutto tranne il file .svn, per assicurarti che i file che sono stati cancellati non vengano lasciati su
    • decomprimi l'archivio nel lavoro g copia
    • cambiamento data di sistema alla data dell'archivio
    • aggiungere ed eliminare, se necessario, e si impegnano all'interno della repository locale
  • Una volta fatto, utilizzare svnadmin dump il repository
  • sul carico principale server SVN la discarica utilizzando svnadmin load

I passaggi precedenti sembrano più semplici per me che installare il gancio pre-revprop-change. (Quello attualmente disponibile consente di modificare solo il messaggio di registro.)

Nota: anziché modificare la data di sistema, è anche possibile modificare la data nel file di dettagli prima di caricarla.

+1

È possibile modificare il file di dump fintanto che l'editor conserva le informazioni binarie e non modifica il end-of-linee. – Dingo

1

Ogni revisione ha una proprietà, svn:date. Se si dispone dell'autorizzazione per modificare proprietà non modificate, è possibile modificare tale valore.

14

Data e ora sono nello "special" revision property, svn:date. È possibile modificarlo come così:

svn propedit svn:date --revprop -r 12345 

o:

svn propset svn:date --revprop -r 12345 2009-02-12T00:44:04.921324Z 

La revisione (ad esempio 12345 sopra) può anche essere HEAD che significa l'ultima revisione.

La data è specificata nel formato ISO 8601.

È necessario disporre del repository per impostare il gancio appropriato pre-revprop-change (nella directory hook nel repository) per consentire di modificare svn:date. I modelli forniti con i repository SVN dovrebbero essere utili.