2010-02-26 6 views
2

Je travaille sur une grande application php/mysql, et j'arrive au point où je dois utiliser une sorte de contrôle de version. J'ai lu quelques articles sur GIT, mais je ne peux pas voir pour trouver la meilleure façon d'y arriver.Contrôle de version pour une grande application web php/mysql

J'ai un serveur dédié qui gère CENTOS avec PLESK. Et je développe principalement sur ma machine locale celle sur laquelle vous utilisez XAMPP.

Si je veux utiliser le contrôle de version, dois-je l'installer sur le serveur qui utilise PLESK, ou dois-je l'installer sur mon ordinateur local. Et est-ce que cela enregistrera également les changements de base de données que j'ai faits.

Une autre chose que je demande est l'utilisation du github. Dois-je télécharger les modifications sur le concentrateur ou dois-je créer ma propre place sur le serveur où les fichiers sources sont stockés?

Nous vous remercions de votre temps!

Répondre

3

La procédure normale consiste à développer votre logiciel en utilisant le contrôle de version. Lorsque vous avez une version qui doit être envoyée au serveur test ou live, vous devez déployer le code du référentiel sur le serveur test/live. Si vous utilisez GIT, il suffit qu'il soit sur votre machine car c'est comme cela que GIT est conçu, en tant que système de contrôle de version distribué. Si vous utilisiez Subversion, cela pourrait résider sur un serveur éloigné de votre machine. Cependant, dans ce cas, vous déploieriez toujours de la même manière.

Il est pas normal d'ajouter la base de données des modifications au contrôle de version pour diverses raisons (il y a discussion de cette dans d'autres question ici sur le SO)

Vous ne devez utiliser GitHub si vous travaillez avec d'autres personnes ou ouvrez votre code au vaste monde à télécharger et à utiliser. Cependant, une autre raison de télécharger sur GitHub serait dans le cas où votre machine locale avec tout le code et le référentiel plantait et que vous perdiez les copies locales que vous pouviez récupérer à partir de là. Cependant, je suppose que vous faites des sauvegardes?

Edition - plus Il y a un free book qui traite de connard, mais pour traiter ci-dessous vous ajoutez un fichier appelé gitignore et il vous ajoutez les modèles de fichiers que vous ne voulez pas dans le référentiel. Vous avez donc des fichiers de configuration locaux et des fichiers de configuration distants sur le serveur cible, mais ils ne sont pas écrasés car vos fichiers locaux ne sont pas dans le dépôt

+0

Oui Je réalise différents types de sauvegardes en ligne et hors ligne. Donc, si je comprends bien, la procédure est la suivante. pc -> git et quand c'est fait git -> serveur. Est-ce que git maintient le réglage du serveur ou devrais-je télécharger manuellement et écraser les fichiers du serveur. –

+0

Ce dernier. Pour cette raison, je n'ajoute jamais les fichiers de paramètres eux-mêmes au SCM, mais un modèle. – Ikke

2

Vous n'avez pas besoin du contrôle de version sur votre machine de déploiement, il suffit d'avoir un référentiel SVN auquel vous vous connectez en utilisant votre machine de développement. Et lorsque le build/release actuel est prêt pour la production, il vous suffit de le télécharger/déployer.

Vous n'avez pas besoin d'un client SVN sur votre serveur de production. Vous pouvez également lire cet article à propos de Using SVN for Web Development.

1

Avec git, vous n'avez pas besoin de serveur. Tout dossier où git est utilisé, c'est-à-dire git --init, est exécuté, devient un référentiel git et stocke toutes les informations de version dans .git, un sous-dossier de ce répertoire. Github est utilisé pour la collaboration entre des projets open source - en hébergeant une copie nue du dépôt dans un endroit central - une copie nue est juste le dossier .git sans arbre de travail.Pour savoir s'il peut gérer le contenu de la base de données mysql,

git peut suivre les fichiers binaires, mais mysql stocke généralement ses données séparément des dossiers sources de votre application, ce qui peut être difficile à faire. Comme le dit Filip, vous n'avez pas besoin de VCS sur votre machine de déploiement; cela dit, avec git, vous pourriez simplement augmenter vos commits.

2

Je suis d'accord avec d'autres réponses, mais si vous aimez utiliser git et avoir une méthode de déploiement de test rapide sur votre machine distante (utile à des fins de test), vous pouvez essayer Gitosis. C'est une solution de serveur git simple, tout simplement vous pouvez avoir votre propre "git server" sur votre machine distante, utile pour conserver une copie de sauvegarde à distance de votre travail. Puis, vous pouvez valider vos modifications localement ou les repasser sur la machine distante.

Sur la machine distante, vous devrez cloner le dépôt également dans le répertoire que vous allez utiliser pour votre projet ...

Il est plus facile qu'il n'y paraît et il fonctionne vraiment bien :)

Questions connexes