Cette question m'est venue en jouant avec git, mais je vais poser le cas général...
Je viens de penser à une fonctionnalité qui pourrait être intéressante pour le contrôle de version, mais je ne sais pas si elle existe ou comment elle s'appelle. Je veux l'appeler changements locaux persistants.
Disons que j'ai un fichier de configuration dans svn, qui contient beaucoup de choses utiles non recréables (et qui doit donc être dans le contrôle de version), mais qui a une section que chacun doit éditer pour lui-même. Il peut s'agir d'une configuration de base de données, d'un nom d'utilisateur et d'un mot de passe, ou du chemin local d'un logiciel tiers. Vos options dans cette situation sont
-
Modifier les guerres dans le contrôle de version. Il suffit de continuer à modifier le fichier et d'espérer que tout le monde abandonne l'édition du fichier avant vous.
-
Modifiez-le, mais ne livrez jamais ces changements. Ils restent là et rendent votre commande "What's new/changed" sale, et vous devez vous rappeler de ne pas les livrer.
-
Le modèle. Retirez le fichier du contrôle de version et enregistrez une copie de celui-ci avec .template à la fin. Copiez localement le fichier et renommez-le, avec vos modifications.
-
Utilisez la nouvelle fonctionnalité (fictive ?) de changement local persistant. Effectuez votre modification puis lancez la commande record-changes-as-local-persistent, qui détermine un correctif, et après chaque mise à jour réapplique votre correctif.
Cette fonctionnalité existe-t-elle quelque part (cela ressemble à git stash, mais le but est légèrement différent) ? Si elle n'existe pas, y a-t-il une bonne raison de ne pas le faire ? (quelqu'un y a-t-il pensé et décidé que c'était une mauvaise idée ?)