Envoyé par
William Vaurien
Nous sommes notre propre client: la prod appuie sur un bouton qui va appeler un de nos scripts via une plateforme de déploiement automatisé et lancer l'install sur des serveurs que nous administrons quasiment à 100%.
Je m'inquiétais plus de la taille du repo sur le disque, surtout avec les releases 'snapshots' qui peuvent se produire plusieurs fois par jour.
Pour le moment nous gardons les paquets de releases et nous sabrons les vieilles snapshots (soit trop nombreuse soit trop ancienne), j'imagine que je pourrais faire pareille en collant les versions intermédiaires sur des branches vouées à disparaître au fur et à mesure...
Je ne sais pas vraiment comment git gère les binaires, est-ce qu'il est capable de faire du calcul de delta ou pas sur ce genre de fichier.
Tu veux dire un truc comme ce qui suit avec comme hello.c le truc :
Code:
#include <stdio.h>
int main(){
printf("Hello, World\n");
}
Code:
mkdir test
cd test && git init
gcc -o hello hello.c
git add hello && git commit -m "Initial"
On modifie hello.c
Code:
sed -i 's/World/William/' hello.c
gcc -o hello hello.c
Et maintenant que la git-magie agisse :
Code:
git diff -p --binary hello >patchMe
git checkout hello (pour revenir au Hello, World)
git apply --verbose patchMe
./hello =>renvoie Hello, William!
J'espere que j'ai bien compris ta question. Je ne sais pas comment ca scale avec des gros fichiers binaires.
Mais si tu veux faire des diff/patchs de fichiers binaires (et les appliquer), je te conseille de regarder les utilitaires bsdiff/bspatch dispo dans toutes bonnes distros (tu peux bien entendu faire des patchs et les appliquer sans problemes sur des executables Windows depuis Linux)