Tout d'abord, je vous conseille de penser du contrôle de version comme une chose distincte de votre IDE. Cela fonctionne au niveau du système de fichiers de toute façon, et quelle que soit l'intégration que Coda vous offre, c'est seulement une abstraction. Au début, il sera plus facile de comprendre les choses si vous prenez Coda hors de l'équation. Maintenant, personnellement, je n'aime pas la ligne de commande (bien qu'elle soit puissante, bien sûr) donc si vous étiez sous Windows, je vous conseillerais d'obtenir Tortoise et de jouer avec ça, ça vous donnerait une meilleure idée des choses . Sur Mac, je ne sais pas. Il y a peut-être aussi un outil graphique sympa pour SVN sur Mac.
Fondamentalement, un flux de travail SVN se compose de deux choses - le référentiel, et votre dossier local. Le dépôt est comme un serveur. C'est l'emplacement central pour tout. Pensez-y comme un "dossier FTP intelligent". Le flux de travail est comme ceci: vous écrivez tout votre code source et d'autres choses dans votre dossier local. Lorsque vous sentez que vous avez terminé, vous le copiez dans le dossier central (référentiel), et commencez à travailler sur la prochaine chose. Lorsque vous avez terminé, copiez-le dans le dossier central à nouveau. Etc. Cette action est la "Commit". Vous copiez vos fichiers locaux dans le dossier central, écrasant tout ce qui s'y trouvait.
Eh bien, c'est en fait un peu plus "intelligent" que la simple copie. SVN suit toutes les modifications, donc lorsque vous supprimez un fichier localement, le commit va également supprimer le fichier sur le serveur. C'est comme si le dossier du serveur ressemblait exactement à votre dossier local.
Maintenant, le principal argument de vente d'un contrôle de version est que toutes ces mises à jour du référentiel sont non destructives. C'est-à-dire, lorsque vous copiez vos dernières nouveautés dans le référentiel, il archive les anciens fichiers qui s'y trouvaient et vous pouvez les récupérer à tout moment. Il est en fait assez difficile de vraiment supprimer quelque chose d'un dépôt SVN. C'est pourquoi même les développeurs individuels ont tendance à préférer utiliser un contrôle de source - c'est comme un système de sauvegarde, si vous vous trompez, vous pouvez toujours prendre l'ancienne version et recommencer. Rien n'est perdu. Et c'est fait assez efficacement aussi.
L'autre avantage principal de SVN sur un simple dossier FTP est lorsque plusieurs utilisateurs modifient les mêmes fichiers. Il garde la trace des choses, donc quand vous et votre ami avez tous les deux modifié le même fichier, il vous avertira en vous engageant. Le plus souvent SVN sera capable de fusionner vos changements automatiquement, mais parfois vous devrez aussi trier les choses à la main. Mais encore une fois - personne ne peut accidentellement perdre leurs modifications parce que quelqu'un a écrasé le fichier qu'ils ont modifié. L'histoire garde tout cela, et dès que vous essayez d'écraser le même fichier, vous obtenez de gros avertissements et autres choses.
Ainsi, le flux de travail ...
Eh bien, la plupart du temps, il est comme ça:
- Vous configurez votre référentiel. Il est vide au départ, comme un dossier vide.
- Ensuite, vous "extraire" le dossier vide dans votre dossier local quelque part. Choisissez un nouveau dossier vide, juste pour être sûr. C'est un peu inutile, mais il établit un lien entre votre dossier local et le dépôt. A savoir, le petit dossier .svn sera créé (vous devriez laisser ces petits dossiers tout seul et les ignorer). À partir de maintenant, SVN saura que ce dossier local reflète le dossier du référentiel et qu'il va valider ce dossier dans le référentiel.
- Maintenant vous copiez toutes vos affaires dans le nouveau dossier vide.
- Dire à SVN "Ajouter tous les fichiers". Cela marque tous les fichiers comme de nouveaux ajouts qui doivent être copiés dans le référentiel la prochaine fois que vous commettez. Maintenant, normalement, il y aura des fichiers que vous ne voudrez pas copier sur le serveur. Ce que vous incluez ici et ce que vous n'avez pas dépend de vous, mais généralement tout ce qui concerne la source du programme (y compris les ressources comme les images) est copié, tandis que les fichiers locaux sont automatiquement régénérés par l'IDE. en dehors. Pensez-y de cette façon - quand un autre gars voudrait se joindre à vous, il prendrait tous les fichiers du référentiel. Lesquelles seraient pertinentes pour lui, et lesquelles supprimeraient-elles? SVN inclut également une fonctionnalité appelée "ignore" afin qu'il ne vous invite pas à propos de fichiers inutiles à l'avenir.
- Ensuite, validez. Cela va copier vos fichiers sur le serveur et remplir le dossier là. Ensuite, commencez à travailler sur la fonction suivante. Lorsque vous avez terminé, engagez. Et commencez par la prochaine fonctionnalité. Etc. En fait, vous devriez vous engager quand vous en avez envie. Une règle d'un pouce est - garder la copie du serveur dans un état sain. Ne commettez pas si elle ne compile pas, ou est au milieu d'une réécriture désordonnée qui laisse la moitié du programme en panne. Commettre des choses complétées.
C'est à peu près tout. Si vous travaillez avec votre copain, vous effectuerez également une mise à jour de temps en temps. Cela copiera les modifications que votre ami a validées dans votre dossier local.
Il existe d'autres fonctionnalités utiles de SVN, mais il s'agit de la configuration de base. Soyez à l'aise avec cela, puis en chercher plus.
Qui a voté pour le transfert de ce super-utilisateur? O_o –