2009-08-21 11 views
16

Acabo de recibir una pregunta rápida sobre git, ¿qué tan compatibles con versiones anteriores son los repositorios de git? Por ejemplo, he creado un repositorio usando git 1.6.4 y el script svn2git ruby, pero quiero ponerlo en una máquina que ejecuta Debian Lenny, que tiene git 1.5.6.5. ¿Todavía podría interactuar con el repositorio correctamente?Compatibilidad con versiones anteriores del repositorio de Git

Respuesta

7

Es extremadamente compatible con versiones anteriores en cuanto al almacenamiento real de la información, que es todo lo que le preocupa en este caso. No soy un experto total, pero dudo que haya cambiado desde la primera versión estable.

El único problema de compatibilidad que puedo pensar es si las dos versiones de git están trabajando en el mismo repos (no clones) y hay opciones/alias establecidos en .git/config que funcionan en el más nuevo versión pero no se implementaron [completamente] en la versión anterior ... pero incluso entonces tendrías que intentar con las versiones de esta manera. Y nuevamente, esto no tiene nada que ver con la información real en el repositorio, solo con los comandos que usa para administrarlo. Ahí es donde se desarrolla el desarrollo de git.

+0

Bueno, sé que en una versión 1.5, el formato del repositorio fue cambiado, pero supongo que eso es todo. Gracias, probablemente pueda continuar con mi trabajo. Me pregunto, ¿la gitosis podría tener problemas con las versiones anteriores? Quiero configurar gitosis en este nuevo servidor de Lenny. Supongo que debería poder recibir empujones y cosas bien. – Ibrahim

+0

Algunas cosas cambiaron con 1.5, pero aquí ver cómo son cautelosos: http://www.kernel.org/pub/software/scm/git/docs/RelNotes-1.5.0.txt Las cosas que cambiaron por defecto configuración, trabaje desde la versión 1.4.3 (al menos). – u0b34a0f6ae

+0

¡Ja! ¡Destruye tu reputación maligna de 666 con un +1! – Bombe

7

Hubo muy pocos cambios incompatibles en el diseño del repositorio de git; incompatible en el sentido de que una versión anterior podría no ser capaz de tratar con el repositorio creado con una versión más nueva, o hacer un intercambio (buscar o enviar) con un servidor más nuevo.

Debe verificar RelNotes (por ejemplo, desde here) para ver si hubo algún cambio incompatible entre las versiones que usa.

Algunos (probablemente todos) de esos cambios incompatibile son:

  • submódulos apoyan: versión git antes del apoyo submódulo se introdujo en el núcleo git no será capaz de manejar repositorio que utiliza submódulos (no lo hace entienda las entradas de subtree/gitlink)
  • refs compactos: la versión anterior de git no podría buscarse a través de HTTP desde un repositorio más nuevo que utiliza referencias empaquetadas (.git/packed-refs). Lo mismo con el viejo git usando el mismo repositorio que el nuevo git que ha empaquetado refs
  • offset delta packfiles: viejo git no entiende la versión más nueva (más compacta) de git packfile (ofs-delta). Esto no es un problema para buscar y empujar, ya que hay un descubrimiento de las características que el servidor admite.

Ninguno de ellos estaba entre 1.6.4 y 1.5.6, creo.

Cuestiones relacionadas