2009-08-21 22 views
16

Ho appena avuto una breve domanda su git - quanto sono compatibili con le versioni precedenti i repository git? Ad esempio, ho creato un repository usando git 1.6.4 e lo script ruby ​​svn2git, ma voglio metterlo su una macchina che esegue Debian Lenny, che ha git 1.5.6.5. Sarei ancora in grado di interagire correttamente con il repository?Compatibilità con le versioni precedenti del repository Git

risposta

7

È estremamente retrocompatibile in termini di archiviazione effettiva delle informazioni, che è tutto ciò che ti preoccupa in questo caso. Non sono un esperto completo, ma dubito che sia cambiato dalla prima versione stabile.

L'unico problema di compatibilità che riesco a pensare è se le due versioni di git funzionano allo stesso repository (non ai cloni) e ci sono opzioni/alias impostate in .git/config che funzionano nel nuovo versione ma non sono stati [pienamente] implementati nella versione precedente ... ma anche in questo caso dovresti provare piuttosto con le versioni così chiuse. E ancora, questo non ha nulla a che fare con le informazioni reali nel repository, solo i comandi che usi per gestirlo. È qui che sta avvenendo lo sviluppo del git.

+0

Beh, so che in una versione iniziale 1.5 il formato del repository è stato modificato, ma credo sia tutto. Grazie, posso probabilmente procedere con il mio lavoro. Mi chiedo però, la gitosi avrebbe problemi con le versioni precedenti? Voglio impostare la gitosi su questo nuovo server Lenny. Immagino che dovrebbe essere in grado di ricevere spinte e roba buona. – Ibrahim

+0

Alcune cose sono cambiate con 1.5, ma vedi qui quanto sono cauti: http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.0.txt Le cose che cambiano di default impostazione, funziona dalla versione 1.4.3 (almeno). – u0b34a0f6ae

+0

Ha! Distruggi la tua perfida reputazione del 666 con un +1! – Bombe

7

Ci sono state pochissime modifiche incompatibili nel layout del repository git; incompatibile nel senso che la versione precedente potrebbe non essere in grado di gestire il repository creato con la versione più recente, o fare uno scambio (fetch o push) con un server più recente.

È necessario verificare le note (ad esempio da here) per verificare se vi sono state modifiche incompatibili tra le versioni utilizzate.

Alcuni (probabilmente tutti) di tali modifiche incompatibile sono:

  • moduli supportano: versione git prima che il supporto modulo è stato introdotto nel nucleo git non sarà in grado di gestire repository che utilizza moduli (non è così capire le voci sottotree/gitlink)
  • ref rif.: la vecchia versione git non sarebbe stata in grado di recuperare tramite HTTP dal repository più recente che utilizza refs (.git/packed-refs). Lo stesso con il vecchio git utilizzando lo stesso repository git come nuovo che ha imballato arbitri
  • compensato packfiles delta: vecchio git non capisce versione più recente (più compatta) di git packfile (OFS-delta). Questo non è un problema per il recupero e la spinta, in quanto vi è la scoperta di funzionalità client supportate dal server.

Nessuno di quelli erano tra 1.6.4 e 1.5.6, penso.

Problemi correlati