2009-02-11 9 views
30

Je n'ai absolument aucune idée du contrôle de version. Seulement que cela peut être très utile de plusieurs façons.Comment démarrer avec le contrôle de version et PHP

J'ai trouvé quelques questions connexes mais aucune qui commence par le début absolu. Je suis le seul développeur à travailler sous Mac OS X et j'utilise traditionnellement le protocole FTP.

Quelqu'un peut-il m'aider avec le contrôle de version par rapport aux projets PHP (est-ce important)?

+0

Quel genre d'environnement de travail avez-vous? Le type de gestion du code source utilisé dépend de votre environnement. – Simurr

+1

@alex, vous pouvez être intéressé par ma réponse à http://stackoverflow.com/questions/250984/do-i-really-need-version-control/251121#251121 –

Répondre

67

Oui, essayer, ça vaut le coup.Et la langue que vous utilisez n'a pas d'importance. Cela fonctionne très bien avec PHP pour moi et pour vous aussi.

Avantages

Si vous êtes le seul développeur, il est en effet plus facile d'aller sans contrôle de version. Cependant, vous trouverez de grands avantages à utiliser un système de contrôle de version. Certains des avantages les plus faciles seront:

  1. Ne jamais se demander quelle est votre dernière version une fois que vous allez revenir à un projet (pas plus myproject090201-archive2-final6.zip)
  2. jamais peur de commencer une grande refactoring , si vous faites une erreur sur votre fichier, vous revenez à la dernière version
  3. Si quelque chose ne fonctionne plus dans votre projet et que vous avez l'impression que cela a fonctionné à un moment donné, vous pouvez tester certaines des versions antérieures facilement et regarder la différence entre la version de travail et la version non-travail pour trouver ce qui a cassé le code
  4. Sauvegarde supplémentaire de votre cu projet rrent, et encore mieux si ce n'est pas sur votre machine ... bien sûr, des points supplémentaires pour sauvegarder votre système de contrôle de version, nous ne sommes jamais trop prudents, vous ne voulez pas avoir à redémarrer ce projet d'un mois toi?

choix

Comme certains l'ont dit, vous avez quelques choix pour votre système de contrôle de version et je suppose que vous voulez un libre pour commencer. Il y a quelques excellents produits commerciaux mais les gratuits n'ont rien à avoir honte. Voici donc quelques systèmes de contrôle de version gratuite très populaire:

centralisée par rapport distribué

Subversion existe depuis un moment et est classé comme «centralisé». Ce qui veut dire que tout le monde ira toujours chercher la dernière version et commettra son dernier travail sur un système central, souvent sur un autre système bien qu'il puisse facilement être sur votre propre machine. C'est un processus facile à comprendre.

Les trois autres sont appelés «distribués». Il y a beaucoup de différents processus possibles car c'est un système plus flexible et c'est pourquoi ces trois nouveaux arrivants obtiennent beaucoup de traction ces jours-ci dans les projets open source où beaucoup de gens interagissent entre eux. Fondamentalement, vous travaillez avec vos propres révisions sur votre propre machine, en faisant autant de copies que vous avez besoin et en décidant quelles versions vous partagez avec d'autres personnes sur d'autres ordinateurs.

La tendance semble définitivement aller vers un système distribué mais comme ces systèmes sont plus récents, il leur manque toujours les outils GUI qui les rendent vraiment conviviaux à utiliser et vous pouvez parfois trouver la documentation un peu plus légère. D'un autre côté, tout cela semble être corrigé rapidement.Dans votre cas, comme vous travaillez seul, cela ne fera probablement pas une grande différence, et même si vous entendrez de très bons points pour les systèmes centralisés et distribués, vous pourrez travailler avec l'un ou l'autre. autre sans aucun problème.

Outils

Si vous avez absolument besoin d'un outil graphique pour votre Mac, je puis choisi SVN pour s'initier au contrôle de source. Il y a deux très bons produits pour que (commercial):

et quelques other ones (comme la libre svnX) qui deviennent un peu vieux et hostile à mon avis mais cela pourrait être intéressant d'essayer de toute façon. Si cela ne vous dérange pas de ne pas utiliser les outils GUI, avec l'aide de Terminal, vous serez capable de faire toutes les mêmes choses avec quelques lignes de commandes simples avec l'un des systèmes mentionnés ci-dessus.

points de départ

Dans tous les cas, vous voulez des points de départ.

  • Pour Subversion, votre premier arrêt doit être leur livre libre, Version Control with Subversion. Prenez quelques heures de votre journée pour parcourir les chapitres, le temps sera bien investi. Les chapitres d'introduction sont une bonne lecture, même si vous ne voulez pas utiliser spécifiquement Subversion car cela vous permettra de mieux comprendre le contrôle de version. Pour un système distribué, je me suis bien amusé avec Mercurial mais c'est un sujet facilement inflammable, je vais donc vous laisser faire votre propre choix là-bas. Mais si vous finissez par regarder Mercurial, jetez un oeil à this blog post, ce fut un excellent démarreur pour moi qui vous permettra de démarrer avec les bases en quelques minutes si vous êtes déjà un peu habitué au contrôle de version en général . Quoi qu'il en soit, passez à Mercurial's homepage et consultez la section Mise en route de la page.

Conclusion

Donnez un coup, investir un jour essayer avec quelques fichiers faux. Essayez de renommer des fichiers et des répertoires, d'effacer, de déplacer des objets, de valider des fichiers binaires par rapport à des fichiers texte, de résoudre des conflits et de revenir à des versions antérieures pour vous en débarrasser. Ce sont souvent les premiers obstacles que vous rencontrerez lorsque vous jouerez avec le contrôle de version, et ce sera sans douleur si vous travaillez sur un projet hors production.

Dans tous les cas, c'est quelque chose d'intéressant à apprendre qui sera utile avec vos projets solo et si vous finissez par travailler avec d'autres développeurs à votre travail actuel ou le prochain.

Bonne chance!

5

Le type de code n'est pas pertinent.

Un système de contrôle de version open-source et populaire est Subversion et il y a un très bon aperçu/manuel here.

2

En outre, vous pouvez obtenir le Eclipse PDT (PHP Plugin) et utiliser Subclibse dans l'IDE.

+0

Ce qui devrait faciliter l'intégration à l'aide de subversion dans votre flux de travail. – VirtuosiMedia

0

Découvrez les autres options aussi - TFS de Miscrosoft (ce utilisé non seulement pour le système de contrôle de source, mais pour le suivi des défauts, gestion de projet, etc., etc.), Bazaar, Git sont plus populaires.

-1

Alex, Le contrôle de la version (et certains vont me disperser pour cette affirmation) n'est pas une mince affaire, et même les développeurs très expérimentés ont eux-mêmes des problèmes. Les causes les plus fréquentes de frustration sont les limitations d'un produit particulier (Visual Source Safe est une célèbre), et les membres d'une équipe ne suivent pas le même processus, ou ne comprennent pas du tout le processus. Cela ne devrait pas vous empêcher d'examiner l'utilisation d'un outil de contrôle de source - le contraire est le cas. Vous ne pouvez utiliser un outil efficacement que si vous comprenez ce qu'il fait et pourquoi.

Je vous recommande de regarder dans CVS. Il existe depuis de nombreuses années, il est relativement simple à installer, configurer et utiliser, et bien qu'il existe des clients GUI disponibles pour la plupart des plates-formes, l'apprentissage à partir de la ligne de commande peut fournir le meilleur accès à ses fonctionnalités.

+0

-1 CVS est largement considéré comme obsolète en faveur de Subversion qui offre un sur-ensemble de fonctionnalités, est mieux supporté sur le système OP et corrige presque tous les problèmes flagrants que CVS subit. –

+0

Qu'est-ce que CVS offre que SVN n'a pas? J'ai entendu cet argument auparavant et n'ai pas encore entendu un argument convaincant pour CVS. –

+0

C'est "simple" parce que c'est si vieux. Cependant, les systèmes d'emballage modernes font presque tout autre chose aussi simple, peut-être plus. – staticsan

3

J'utilise Git pour le développement PHP. C'est rapide, flexible, fiable, propre (CVS et SVN créent beaucoup de dossiers cachés que je n'aime pas personnellement).

Sa nature distribuée permet de travailler comme vous le souhaitez (avec ou sans référentiel central).

Vous pouvez trouver plus d'informations ici:

1

Si vous êtes sur un Mac, faites-vous une faveur et ramasser les versions, un design superbe (et hautement fonctionnel) Subversion GUI. Vous feriez mieux d'apprendre la terminologie et d'avoir une idée de la façon dont Subversion fonctionne en utilisant une interface graphique avant de passer à la ligne de commande. Une fois que vous êtes en mesure d'engager des révisions de votre code et d'exécuter des mises à jour pour obtenir le travail des autres, revenez lire le livre de haricots rouges (c'est vraiment la meilleure façon d'apprendre Subversion).

http://versionsapp.com/

2

Les versions fonctionnent bien pour un autre développeur avec lequel je travaille. En outre, si vous utilisez Textmate, le bundle SVN fournit à peu près tout ce dont vous avez besoin pour la plupart des parties du flux de travail Subversion. J'aime vraiment ça.

Le plugin Project Plus va encore plus loin en ajoutant de petits badges discrets aux fichiers versionnés dans l'arborescence du projet, montrant en un coup d'œil l'état des fichiers dans un projet.

Questions connexes