J'ai beaucoup entendu parler des avantages de l'utilisation d'un système de contrôle de version et j'aimerais essayer une. Je faisais un développement Web indépendant au PHP depuis 2 ans, deux mois de retour, j'ai embauché deux autres programmeurs pour m'aider. Je vais embaucher une autre personne bientôt. Nous maintenons 4 sites Web, tous les mêmes, qui sont continuellement édités par l'un de nous. J'ai appris PHP par moi-même et je n'ai jamais travaillé dans aucune autre entreprise. Par conséquent, je suis nouveau au contrôle de la version, aux essais unitaires et à tous. P>
Actuellement, nous avons des serveurs de développement sur nos postes de travail. Lorsque nous édions une section particulière d'un site, nous téléchargeons le code de cette section particulière (par exemple / ou / wallpapers / ou / wallpapers / ou /) à partir du serveur de production sur le serveur DEV, apporte les modifications localement et télécharge sur la production. Serveur (Aucun code de code / test). Pour cette raison, notre serveur DEV est toujours obsolète à partir de notre serveur Prod. De temps en temps, cela crée également un problème lorsque l'un de nous oublie de télécharger la dernière copie de prod et écrase le dernier changement. Je sais que c'est très très stupide, mais notre serveur Prod Server est la seule copie qui possède toutes les mises à jour et les dernières modifications. P>
Quelqu'un peut-il suggérer lequel est le meilleur système de contrôle de version pour moi? Je suis plus intéressé par le contrôle de version distribué, car nous n'avons pas de sauvegarde centrale pour tout notre code. J'ai lu sur Mercurial et Git et j'ai constaté que Mercurial est utilisé dans plusieurs grands projets open source de Mozilla, Sun, Symbian, etc. Alors, lequel pensez-vous, c'est mieux pour moi? Non seulement le contrôle de la version, s'il y a un autre package que je peux utiliser pour rendre ma configuration actuelle mieux, veuillez la mentionner aussi :) P>
6 Réponses :
Vous pouvez utiliser svn, git, mercurial. p>
Le plus grand défi consiste à faire la discipline tout le monde dans l'utilisation de la version de la version et ne pas devenir paresseux. P>
C'était la raison principale que je n'ai pas pensé à utiliser cela auparavant. Mais maintenant, je comprends que les avantages surpassent l'inconvénient.
Il n'est jamais venu pour moi que les gens ne manquaient pas de discipliner le contrôle de la version, car cela sauve tout le monde si les gens le font. Mais alors cela fait des années que j'ai même envisagé de développer sans contrôle de version.
Ça arrive. Surtout si les gens ne sont pas utilisés pour travailler avec le code de code, cela se produira à un moment donné.
La version de la version est un outil incroyable même lorsque vous travaillez seuls et lorsque vous travaillez avec quelqu'un d'autre, il est indispensable. Je recommanderais d'utiliser Git. Il est très rapide, dispose d'un très bon ensemble d'outils disponibles et, bien sûr, a Github.com . Mercurial est essentiellement aussi bon que GIT, mais il court un peu plus lentement et n'a pas de GitHub. p>
Pour pourquoi utiliser GIT, veuillez lire http://whaygitisbetterthanx.com/ p>
Voici un beau tutoriel sur la mise en route avec GIT: http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html p>
Comme je ne suis pas sûr de savoir comment cela va se révéler, je suis plus intéressé par une configuration gratuite. Si Git est DVCS, pourquoi avons-nous besoin d'un serveur d'hébergement de projet comme GitHub.com?
Github est gratuit pour les projets que vous souhaitez faire à l'extérieur. Vous pouvez utiliser Git sans GitHub, et c'est génial, mais GitHub ajoute beaucoup de valeur. Je pensais que les documents GitHub pourrait vous aider à démarrer.
Bitbucket est identique à GitHub, et cela vous donne un référentiel privé gratuit. Je ne considérerais pas GitHub d'être un bon point de GIT, ni de tout autre service. Il existe des services qui appuient tous les trois comme CodeBaseHQ ou un bien meilleur que ceux que j'ai mentionnés jusqu'à présent: Four (pour Mercurial). Les services d'hébergement de référentiel sont partout.
@Vinod: Si vous voulez avoir un bel endroit central où tout le monde peut tirer et pousser à partir de vous, vous avez besoin d'hébergement. Cela facilite la synchronisation entre vous, car vous n'avez pas besoin d'obtenir tout le monde à exécuter un serveur afin que vous puissiez tirer / pousser d'eux.
@iconik GitHub est plus que l'hébergement de projet, c'est une communauté d'utilisateurs. Cela encourage à créer de petits projets pour partager des bits de code utiles. Tout le monde sait que vous n'avez pas besoin i> une solution hébergée pour DVCS; Il s'agit des fonctionnalités qu'ils ajoutent et non de l'hébergement gratuit. Si votre code est privé, vous ne le voulez pas de bonne chance sur les serveurs de quelqu'un d'autre.
On dirait que Git peut bien accomplir vos objectifs. Comme il est distribué, il est excellent pour travailler localement car vous pouvez effectuer la plupart des opérations (commit, revenir, diff, diff, patch) sans vous connecter à un serveur central. Vous pouvez également éviter ce moment laid de quelqu'un qui pousse le nouveau code à la production pendant que quelqu'un d'autre y travaille, puis la tâche compliquée de fusionner ces deux versions du code ensemble (GIT fournit un outil utile pour le faire appelé Rebase). p>
Vous avez noté qu'il y a quelques grands projets utilisant HG (Mercurial), mais il y a des assez gros en utilisant Git, comme le noyau Linux, X.org, Android et Debian. P>
J'utilise git pour tous mes sites: c'est un éclair rapide, efficace et facile à utiliser. P>
EDIT: Si vous voulez vous lancer dans l'utilisation de GIT, je vous recommanderais de faire de la lecture avant de sauter directement. Début du mauvais pied peut avoir des implications terribles plus tard. Si vous suivez un flux de travail agile, vous voudrez peut-être vérifier Ceci out. Voici Un site Web J'ai appris la majeure partie de mon savoir-faire GIT. P>
Merci, Zack. Ai-je besoin d'un serveur central pour utiliser GIT? Si nécessaire, puis-je simplement transformer l'un de mes serveurs de devises dans un serveur central?
Vous n'êtes pas obligé d'en avoir un, mais vous en avez besoin d'un, en ce sens que cela rendra vraiment votre vie plus facile.
Vous n'en avez pas besoin d'un, mais c'est une bonne idée d'en avoir un. Hypothétiquement, vous pourriez avoir chaque développeur ajouter tous les autres développeurs en tant que lieu éloigné et partage de travail de cette façon, mais ce serait tout à fait un cauchemar. Git est très léger et peut courir derrière une authentification SSH préexistante.
I Deuxième Git: Whygitisbettertherx.com
Ils devraient avoir: «Parce que l'utilisation de GIT est plus amusante que le code réel que vous écrivez» indiqué là-bas, je pense.
définitivement mercurial. Bien que vous puissiez utiliser GIT ou SVN, Mercurial est préférable pour deux raisons: P>
Si vous ne voulez pas vous exécuter un serveur mercurial (qui est assez facile de toute façon), de nombreux services sont disponibles. Le four + Fogbugz est une excellente combinaison. Il y a aussi CodeBaseHQ (prend également en charge GIT et SVN), BitBucket et beaucoup d'autres. P>
Avant de passer à autre, je vous recommande vivement de lire au moins Tutoriel de Joel Spolsky , mais je vous recommande vivement Lire Mercurial: le guide définitif . P>
Merci. Je viens de lire ( Straw-Dogs.co.uk/ 11/16 / Mercurial-vs-git ) que GIT a un support Windows pauvre. Le support Windows est important pour moi, car tout le monde utilise Windows, autre que moi. La facilité d'utilisation est un autre facteur important pour moi. Parce que je vais avoir du mal à enseigner aux autres comment utiliser le système. Lequel est le plus facile du point de vue d'un utilisateur. La mise en place du système est mon travail et cela ne me dérange pas que cela soit un peu compliqué.
@Vinod, git a été conçu pour Linux, ce n'est donc pas surprenant Linux est traité comme une première classe, OS X se termine bien car il est très similaire et Windows est un citoyen de deuxième classe. Le seul moyen stable d'exécuter Git est sous Cygwin; Il y a un port sous Mingw, mais je le trouve assez lent et instable.
@Vinod: L'intégration de subversion dans Windows est excellente: Tortoisesvn est aussi bonne que possible pour l'explorateur, VisualSvn est un extrêmement bon outil pour Visual Studio et pratiquement tous les IDes ont une intégration SVN. Les outils pour Mercurial sont un peu brut: Tortoisehg est utilisable, mais pas génial; VisualHg, je ne l'ai pas utilisé, je ne peux pas dire grand chose. Les IDs basés sur l'éclipse ont une bonne intégration avec Mercurial cependant. Cependant, l'interface de ligne de commande est assez facile à utiliser; Voir cette feuille de triche: goo.gl/iqc4
Git a parcouru un long chemin sur Windows depuis 2008, lorsque ce poste a été fait. Cygwin est PAS B> Le seul moyen d'exécuter GIT, GIT fonctionne de manière native avec une interface graphique ou de CLI comme MSYSGIT, qui peut être trouvé sur Google Code. Il fonctionne également dans Eclipse, si vous utilisez cela.
@Zack, je le sais. J'utilise moi-même msygit. Mes commentaires sont basés sur mon expérience, pas sur ce que j'ai lu sur un site Web.
Comme le mien, j'ai travaillé sur de nombreuses ordinateurs Windows XP, Vista et 7, et MsySgit fonctionne aussi bien que sous Linux.
Vos attaques sur Git sont injustifiées et vous ne répondez pas à un certain nombre de raisons GIT est supérieure à HG. Les préoccupations que j'ai sont mieux expliquées par ce site Web: Whoygitisbetterthanx.com
Je suppose que les électeurs de bas sont des haineux? O.o
Les votes en panne sont probablement de personnes qui n'aiment pas la calomnie, moi-même incluse.
Je suis désolé, je n'avais aucune intention de commencer une guerre sainte DVCS. Je vais essayer Git. P>
Oui, le contrôle de la version aidera. Pour commencer, je vois deux problèmes importants pour vous: P>
hébergé ou autogéré? STRUT> Voulez-vous vous héberger vous-même sur un serveur ou souhaitez-vous prendre en charge un service pour vous? Il y a des raisons d'aller de toute façon, mais si vous n'êtes pas cela dans la gestion du serveur, recherchez une option hébergée. P> li>
svn ou git strong> Il y en a d'autres, mais ce sont les principaux prétendants open source. P> li>
ul>
Avantages et inconvénients (mon avis): P>
svn fort>: bons tutoriels et assez facile à accélérer. L'exigence de formation est petite (j'en ai fait un peu). SVN fonctionne très bien avec une équipe co-localisée, de nombreux projets, etc. avec un nombre limité de branches (vous n'auriez peut-être pas besoin de), il est solide. Il y a beaucoup d'intégrations avec d'autres outils. P>
Étant donné ce que vous dites de votre équipe, je vous recommanderais probablement d'essayer SVN. Il y aura de meilleures ressources pour vous aider à y aller et vous aurez moins de chances de vous faire frustration. P>
J'espère que cela aide. P>
Sur quelle plate-forme développez-vous? J'aimerais vous trouver un didacticiel git approprié, mais j'ai besoin de savoir si vous êtes sous Windows, OSX, etc.
J'utilise OSX, d'autres utilisent Windows et notre serveur Prod Cent OS
GIT peut fonctionner sur toutes ces plateformes, il y a des outils d'interface graphique pour chacun (bien que je vous recommande d'utiliser la ligne de commande) ainsi qu'un plugin assez stable pour Eclipse pour cela. Puisque vous utilisez OSX, je suppose que vous utilisez Textmate (et si vous ne le faites pas, c'est très, très i>, très b> Vérifiez), et il y a un Bundle disponible pour cela.
Git et Mercurial semblent avoir un bon choix pour vous. Vous pouvez également consulter Phpstorm par Jetbrains. C'est une IDE qui intègre toutes les fonctionnalités de contrôle de la version directement dans l'interface.