Question

Je développe dans un langage de script propriétaire très repris le code dans lequel la plupart des configurations sont contenues dans le code lui-même.

Le problème évident serait les différences dans le code lui-même entre les environnements de test et de production, et c'est exactement ce que je suis en train de gérer avec GIT.

Comme mon env test est je assez volatile pensé que je pouvais créer une branche en GIT pour elle alors qu'il ya des changements apportés (et conserver le code avec des configurations de test là-dedans) et après le code a été accepté je fusionner dans la production.

Eh bien, quand je demande git fusionner mes branches, il fait un excellent travail avec le code .. mais les configs sont migrés aussi bien et que je dois fichier par fichier ouvert, changer à ce qu'elle était.

Y at-il de toute façon je pouvais désactiver la fusion automatique de GIT et tout menace que les conflits de code pour être manuellement fusionné avec WinMerge ou quelque chose plus tard? Le code est court, vraiment. Et depuis que je vais devoir modifier de toute façon d'appliquer les configurations ...

ps .: s'il vous plaît avis, je ne demande pas comment configurer Winmerge sur git. J'ai ces outils de travail. Ma question est de savoir comment effectuer toujours se confond manuel entre les branches.

merci!

f.

Était-ce utile?

La solution

  

Désactiver la fusion automatique

Cela pourrait être obtenir en écrivant un petit pilote de fusion, situé dans fichier .gitattributes.
Une politique comme unset pourrait être ce que vous recherchez.

Unset
  

Prenez la version de la branche actuelle comme résultat de la fusion provisoire, et déclare que la fusion a des conflits.   Ceci est approprié pour les fichiers binaires qui ne sont pas une sémantique de fusion bien définis.

Mais un autre pilote gitattribute intéressant serait un Filer propre :

http://git-scm.com/figures/18333fig0703-tn.png

Ce serait exécuter automatiquement un script « propre » de votre choix juste avant de commettre le contenu « nettoyé » à la mise en pension.
Un tel script « clean » pourrait vous aider à automatiser les changements que vous avez à faire à votre code de conserver ou de modifier les valeurs de configuration intégrées dans ce.

Autres conseils

Vous dites que « la plupart des configurations sont contenues dans le code lui-même » mais nous espérons que toute la configuration est isolée dans les fichiers spécifiques à la configuration. Si tel est le cas, vous pouvez garder les deux cas de test et de libération du code de configuration dans la même branche. Vous pouvez ensuite utiliser un commutateur de ligne de commande pour utiliser la configuration de test au lieu de la normale.

Si votre programme peut lire une sélection de configuration à partir de la ligne de commande (ou variable d'environnement, clé de Registre, fichier texte ou autre), vous ne devez fusionner tout. Le programme peut ignorer les fichiers de configuration de test lorsque le commutateur de ligne de commande n'est pas présent, et ignorer la configuration de sortie lorsque le commutateur de ligne de commande est présente.

Cela vous évite des erreurs possibles lors de la fusion ainsi que le temps qu'il faut pour faire la fusion.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top