Je travaille sur un site Web PHP où je viens d'ajouter un commutateur pour l'environnement dans lequel il fonctionne - development
pour quand il fonctionne sur mon site local, et production
quand il est en cours d'exécution sur l'hôte Web:Mercurial - conserver des dépôts de développement et de développement
<?php
define('ENV','development');
//or
define('ENV','production');
Je le site en VC avec Mercurial, et le plus souvent simplement déployer mon site avec hg push
(le serveur exécute hg trop), mais, avec l'ajout de ce commutateur, la « production » Le site sera toujours différent du site "développement" en ce sens que la version déployée en direct sera toujours définie sur production
au lieu de development
.
Cela signifie que mon processus de déploiement va de
- Développer
- test
hg commit -m "Made changes"
hg push
ssh host hg update
- Aller à 1.
à
- Développer
- test
hg commit -m "Made changes"
- changement
development
-production
- `hg commit -m "dev -> prod"
hg push
ssh host hg update
- (plus tard :) Change
production
->development
hg commit -m "prod -> dev"
- Aller à 1.
Ce qui est évidemment pas grand.
Y a-t-il un moyen de garder une isolation de l'autre, de sorte que le site en direct soit toujours défini sur production
et que ma copie locale soit définie sur development
?
Donc, dans ma branche de production, je mets du code spécifique à ce qui est vivant (comme les configurations de base de données), et sur ma branche de développement, je garde le code spécifique pour qu'il soit local? Et comment fonctionne la fusion entre les branches? Si je change de code qui affecte les deux branches, la fusion va-t-elle l'attraper? –
Oui, il va, ce qui pose également un risque élevé de fusionner la mauvaise chose. Vous devriez avoir une meilleure stratégie pour garder vos paramètres de production/développement séparés plutôt que d'abuser de votre SCM. –
@Austin: Euh, je garderais les configurations en dehors du repo de code. J'aurais 1 repo de configuration pour la production, et un epo de configuration 100% différent pour le développement. –