J'ai un problème debout debout: Au travail, nous utilisons Mercurial comme DSCM, mais nous ne pouvons pas comprendre comment conserver nos fichiers de configuration en synchronisation. p>
Le problème est que nous souhaitons garder une trace des fichiers de configuration et que vous souhaitez pouvoir échanger le contenu du fichier de configuration parmi les développeurs, mais chaque développeur souhaite avoir sa section de connexions indépendante des autres. p>
est-il possible de conserver des fichiers de configuration suivis, mais d'omettre la section des chaînes de connexion lors de la tirage et de la poussée? P>
Nous avons essayé d'ajouter des fichiers de configuration à .hgignore, mais lorsque quelqu'un ajoute quelque chose d'important au fichier de configuration, nous devons le partager par courrier électronique. P>
merci. p>
6 Réponses :
Le moyen non-DVCS à gérer est de configurer votre processus de construction pour lire les chaînes de connexion du fichier de configuration distincte, puis la prétraite pendant le processus de construction (en Java, vous pouvez utiliser Ant ou Maven pour filtrer à partir d'un fichier de propriétés. , Je ne sais pas sur MS-Terre). P>
Je ne connais pas les détails de vos fichiers de configuration, mais si vous pouvez inclure d'autres fichiers, créez un fichier Comme Ken dit, si l'inclusion n'est pas une option, le prétraitement de la construction peut être le moyen d'aller. P> config_local code> pour contenir les paramètres spécifiques au développeur. Ajouter ce fichier à .hgignore code>. Les paramètres communs entrent dans le fichier de configuration principal, qui inclut ensuite le fichier config_local code>. P>
Si vous ne pouvez pas y faire face avec l'inclusion de paramètres personnalisés, il suffit d'avoir un fichier de configuration de base dans le représentant.
Demandez à chaque développeur de mettre sa propre personnalisation sur le dessus (avec MQ). Si la personnalisation n'est pas trop intrusive, la fusion va toujours bien. P>
Il y a un autre moyen, où vous fusionnez à plusieurs reprises votre personnalisation, mais lorsque vous poussez, vous devez vous rappeler de ne pas pousser la branche de fusion ( TX code> est Mainline, C1 CODE> est la personnalisation) P> t1-t2-t3-t4-...-tN
\ \ \ \
c1---c2-----c3--c4
Vous pouvez utiliser files d'attente mercuriales pour le faire. Donc, ce que vous feriez, c'est avoir la "vraie" configuration sous Hg (avec leurs noms réels) et les développeurs peuvent conserver leurs personnalisations à l'aide de correctifs qui sont assis sur le dessus et sont maintenus avec MQ. P>
Puis, lorsque les développeurs doivent mettre à jour la configuration réelle, ils affichent leur patch qui détient toutes leurs personnalisations de la pile, apportez la modification à la configuration et à validez + le pousser. p>
présumer que tous les autres développeurs n'ont pas remplacé ces changements particuliers dans leurs propres files d'attente, ils les recevront la prochaine fois qu'ils tirent + la mise à jour. P>
C'est un peu une bâtardise, mais vous pouvez utiliser le Mots-clés pour développer automatiquement les jetons . Dans votre fichier de configuration, mettez quelque chose comme ceci: puis dans leurs fichiers ~ / .hgrc utiliserait quelque chose comme ceci: P> [extensions]
hgext.keyword=
[keyword]
# expand keywords in all python files in working dir
**.conf =
[keywordmaps]
DBHOST = dev.server.internal
DBUSER = myname
DBPASS = mypass
Mettez vos chaînes de connexion dans un fichier différent. par exemple. dans web.config: alors vous avez un fichier Si vous souhaitez une version "Référence" du fichier Connections.config, ajoutez simplement un autre fichier connexions.config code> avec les chaînes de connexion, que vous pouvez exclure du référentiel, laissant ainsi chaque développeur modifier à leur Contenu de Heart's. P> connections.example.config code> sous contrôle source et utilisez-le comme votre version de modèle. p> p>