Gente, necesito ayuda y quiero describir lo que necesito hacer o saber ya que me lo estan pidiendo en el laburo y no puedo engarnchar la vuelta...
Actualmente hay un desarrollo que utiliza GIT en un repositorio remoto y un programa que lo que hace es actualizar un programa en una pc en x lugar del mundo cuando sabe que hay una versión nueva...
Hasta aca todo bien, lo que necesito yo saber es si GIT es capaz de bajarme solo el "delta" (cambios) entre una versión y otra.
Supongamos que en la V1 el programa pesa 100MB y se sube una V2 la cual se le agregaron un par de cosas y termina pesando 120MB. ¿Cuando se hace un pull, git solamente te baja los 20MB de diferencia?.
Esto viene porque puede haber una V3 a la cual se le agregan otros 200MB y en una V4 se le sacan esos 200.... Cuando a una PC nueva, le tenga que clonar o hacer un pull de la V4, GIT me baja igualmente el historial con 320MB, cuando en realidad ya el proyecto vuelve a ser de 220MB (estoy leí que es así, que no hay vuelta atras porque el historial de git quedó marcado así...).
¿qué alternativa puedo tener a esto?.
Pense en crear branchs separadas para cada versión, quedando así
MASTER
|-----V1 (100MB)
|-----V2 (120MB)
|-----V3 (320MB)
|-----V4 (120MB)
|-----V5 (130MB)
Leyendo encontre el siguiente comando.
Git clone --depth o git pull --depth.
Estoy me funcionó bien, Si hago un git pull --depth 1 <remoto> V4:master
me hace perfecto el pull del solamente la V4 de 120MB
El problema es el siguiente, si tengo que hacer un pull de una versión V2 (porque en x pc tengo que instalar la V2:
git pull --depth 1 <remoto> V2:master
Hasta ahí todo ok...
Ahora, tengo que instalar en esa misma pc, la V5, por lo cual solamente necesito agregarle los cambios agregados en V5 (osea, sus deltas), pero aca es el problema.
no puedo hacer un git pull --depth. Por lo cual hago un git pull normal:
git pull <remoto> V5:master y me termina bajando todo y no necesito eso...
Descartemos que la V3 se le agregaron 100MB equivocadamente.
MASTER
|-----V1 (100MB)
|-----V2 (120MB)
|-----V3 (150MB)
|-----V4 (170MB)
|-----V5 (210MB)
me creo un repo local llamado Evolucion y arranco bajando desde la V3...
git pull --depth 1 <remoto> V3:master
hasta aca perfecto.
ahora tengo que pasar a la V5...
¿cómo realizo esto?
puedo ir de la V3 a la V5 bajandome solo los deltas (osea solamente 60MB) que es la diferencia entre uno y otro? (20 que hay entre v3-v4 y 40 que hay entre v4 y v5)...
Se que es un poco confuso, pero bueno, es lo que tengo que analizar... Es cuestión de vida o muerte jajaja.
Gracias