2010-03-09 4 views
3

Existe-t-il un moyen simple de gérer les fichiers binaires dans les opérations git? Je pense que mon idéal dans ce cas - 'fusionner' des fichiers .mo (messages .po binaires) - serait de donner la priorité au fichier le plus récent, en le copiant par-dessus le plus ancien.comment gérer le gitting de binaires, par ex. Fichiers .mo

Alors, est-ce que je peux configurer git pour ce faire ou est-ce que ça va toujours être un exercice manuel?

Répondre

3

Vous pouvez ajouter un fusion personnalisée pilote dans un gitattributes file (voir ce SO question), uniquement pour les fichiers *.mo et uniquement dans les répertoires concernés.

echo *.mo merge=keepTheir > dirWithMoFiles\.gitattributes 
git config merge.keepTheir.name "always keep theirduring merge" 
git config merge.keepTheir.driver "keepTheir.sh %O %A %B" 

Avec keepTheir.sh comme:

mv -f $3 $2 
exit 0 
+0

Cela ressemble à une possibilité intéressante. Je vais enquêter plus tard quand j'ai fini ce que je fais maintenant. – Leo

0

La meilleure idée est de ne pas garder les fichiers générés (tels que les fichiers .mo) sous le contrôle de version.

Si vous souhaitez toujours les avoir dans Git, utilisez les méthodes standard pour résoudre les conflits.

Par exemple, vous pouvez obtenir soit la version du fichier en conflit:

git checkout --theirs -- dir/file.mo 
git checkout --ours -- dir/file.mo 

Ou utilisez git mergetool qui vous fournira les deux versions du fichier en conflit.

+0

Pas vraiment ce que je cherche - chaque matin je fusionne mes changements avec ceux de mon collègue. S'il a ajouté ou (re) défini des messages, je veux les récupérer sans avoir à régénérer le fichier mo localement. Bien sûr, si nous avons tous les deux fait des changements de message, alors je devrais me régénérer, mais cela arrive aussi souvent que les éclipses solaires. Ce que je veux c'est que git copie le dernier fichier sans poser de questions - une sorte de directive ignore qui copie aveuglément plutôt qu'ignore. – Leo

+0

Mais si un seul change les messages, il ne devrait pas y avoir de conflit du tout. –

Questions connexes