Comment git fetch efficacement à partir d'un clone simple

Nous utilisons git pour la distribution d'un système d'exploitation et le garder jusqu'à ce jour. Nous ne pouvons pas distribuer la totalité du référentiel car il est trop grand, (>2 GO), donc nous avons été en utilisant faible clones (~300M). Cependant récemment, lors de l'extraction à partir d'un clone simple, c'est désormais inefficace récupère la totalité de l' >2 GO de référentiel. C'est intenable gaspillage de bande passante pour les déploiements.

Le git de la documentation dit que vous ne pouvez récupérer à partir d'un faible dépôt, bien que c'est strictement faux. Existe-il des solutions de contournement pour faire un git clone --depth 1 en mesure de récupérer tout ce qui a changer? Ou une autre stratégie pour garder le distribution de la taille la plus petite possible tout en ayant tous les bits git a besoin de faire une mise à jour?

J'ai essayé, sans succès, le clonage à partir de --depth 20 pour voir si elle va de la mise à niveau de manière plus efficace, qui ne fonctionne pas. J'ai aussi regarder dans http://git-scm.com/docs/git-bundle, mais qui semble créer d'énormes ballots.

  • "mais qui semble créer d'énormes ballots": uniquement pour le premier. Après cela, vous pouvez créer des différentiels de faisceaux.
  • Ma première distribution ne peut pas être énorme...
  • Vous devrez essayer de nouveau chercher de votre clone simple avec Git 1.9/2.0 (T1 2014): ces opérations sont maintenant beaucoup plus efficace. Voir ma réponse ci-dessous
  • Git 2.5 (T2 2015) prend en charge une seule extraction de s'engager! J'ai édité ma réponse ci-dessous, maintenant référencement "Pull spécifique de commettre distance à partir d'un dépôt git".
InformationsquelleAutor hendry | 2013-10-14