Lors du développement de logiciels, le contrôle de source rend notre vie beaucoup plus facile. Du suivi de nos modifications à l'introduction de la collaboration de code, cela contribue à augmenter notre productivité. De plus, le fait qu’il existe un grand nombre d’outils différents - Subversion, Perforce, Mercurial, etc. - le rend encore meilleur en nous offrant des options parmi lesquelles choisir..
Dans cette série, nous nous intéressons plus particulièrement à Git et à l’utilisation de Bitbucket et à la manière dont ils peuvent nous aider dans notre travail quotidien. Dans cet article, nous allons nous intéresser plus particulièrement à l’utilisation de Bitbucket pour la discussion des fonctionnalités, le suivi des bogues, le marquage des versions, etc..
L'une des principales caractéristiques de Git - et donc de Bitbucket - est l'idée de demandes d'extraction. Dans cet article, nous allons examiner les demandes d'extraction et leurs avantages non seulement du point de vue du contrôle de source, mais également du point de vue des pairs..
Lorsqu'une personne envoie une demande d'extraction dans votre projet, cela signifie qu'elle demande à ce que son code soit fusionné dans la base de code. C'est-à-dire qu'ils vous demandent d'extraire leur code dans le projet.
Mais nous, en tant que responsables, avons la possibilité d’examiner, de tester et de fusionner les modifications introduites par la demande. Ne vous y trompez pas: nous jouons un rôle très important dans le choix de la conformité de la demande aux normes et aux objectifs de notre logiciel..
Si un écart est trouvé, nous pouvons demander au contributeur de mettre à jour la demande d'extraction en nettoyant le code, en résolvant les problèmes en suspens ou en améliorant la qualité générale du code. D'autre part, nous pouvons également rejeter la demande d'attraction si nous décidons qu'elle ne répond pas aux critères que nous jugeons nécessaires pour le projet..
Pour émettre une demande d'extraction, une personne doit d'abord bifurquer la base de code du projet initial. Cela signifie qu'ils prennent un instantané de la base de code dans son état actuel, créent un ensemble de modifications, puis commettent les modifications dans leur copie personnelle du code. À partir de là, le développeur demande ensuite que la modification soit extraite dans le référentiel initial..
Comme mentionné précédemment, les demandes d'extraction peuvent comporter un certain nombre d'éléments:
Utilisée par des équipes de toutes tailles - en interne et distribuées - la gestion du contrôle de source est une partie précieuse du développement logiciel. Le problème est que, s’agissant de travailler avec des systèmes de contrôle de source, les utilisateurs ont des rôles différents en matière d’autorisations..
En d’autres termes, lorsqu’il s’agit de maintenir un référentiel, certains développeurs auront un accès en lecture seule, tandis que d’autres disposeront d’un accès en lecture et en écriture. Et ceux qui ont un accès en écriture sont ceux qui sont responsables du maintien des demandes d'extraction.
Dans cette série d'articles, nous examinons comment Bitbucket peut améliorer le flux de travail de votre équipe en matière de développement de logiciels. Comme nous l'avons vu précédemment, Bitbucket permet aux utilisateurs de participer au projet en y engageant du code, en examinant les demandes d'extraction et en effectuant des fusions desdites demandes..
L’une des fonctionnalités les plus intéressantes de Bitbucket est qu’il vous permet d’ajouter plusieurs relecteurs à une seule demande d’alimentation qui peut ensuite approuver (ou rejeter) la demande. Ceci, à son tour, donne à ceux qui maintiennent le référentiel la possibilité de vérifier la qualité du code spécifié dans la demande d'extraction..
Peut-être qu’ils accepteront les ajouts au projet, peut-être pas. Quoi qu’il en soit, Bitbucket fournit aux responsables de la maintenance les outils nécessaires pour commenter une demande d'extraction donnée..
Enfin, Bitbucket prend en charge les commentaires en ligne sur chaque demande d'extraction, ce qui facilite beaucoup la discussion sur une ligne, un bloc ou un module de code spécifique..
Globalement, cette approche facilite beaucoup la tâche de déterminer si une demande d'extraction doit être fusionnée ou non, si elle doit être rejetée ou quelles zones de la devraient être modifiées avant la fusion de la demande..
Pour commencer, visitez le tableau de bord du projet dans votre navigateur Web, puis cliquez sur Fourchette bifurquer le référentiel.
Ensuite, vous recevrez un formulaire vous permettant de spécifier un nom personnalisé et une description personnalisée. Vous avez également la possibilité de définir la visibilité et les autorisations du référentiel parmi d'autres fonctionnalités..
Si vous êtes responsable du code à écrire et que vous souhaitez accéder à des outils supplémentaires facilitant le travail en équipe autour de la base de code, sélectionnez l'option correspondante. Gestion de projet option de l'élément d'interface correspondant.
Après avoir cliqué sur le Référentiel Fork bouton, vous allez récupérer la dernière version de la base de code du projet et l’avoir disponible dans un référentiel qui vous appartient. Pour extraire le code sur votre ordinateur local, vous pouvez utiliser un client Git tel que SourceTree ou vous pouvez le faire depuis la ligne de commande en exécutant les commandes suivantes dans le répertoire local où votre projet est stocké:
$ git clone https: //votre [email protected]/votre nomutilisateur/reponame.git
Notez que l'URL que nous avons spécifiée ci-dessus est visible dans le tableau de bord de votre référentiel dans le tableau de bord de Bitbucket..
Après avoir extrait le code, vous pouvez commencer à travailler sur le projet sur votre ordinateur local. Au fur et à mesure que vous introduisez des modifications, vous voudrez le mettre dans le référentiel. Pour ce faire, vous commencez par mettre en œuvre votre travail, puis vous l'enregistrez dans le référentiel..
À ce stade, nous sommes prêts à nous mettre au travail. Ce que cela signifie varie en fonction de la nature de votre projet: peut-être travaillez-vous pour fermer un bogue, peut-être refacturez-vous une fonction ou ajoutez-vous une fonctionnalité?.
Quel que soit le cas, une fois les modifications apportées, vous pouvez émettre un commit dans le référentiel. Cela signifie que vous prenez les fichiers sur lesquels vous avez travaillé et que vous les combinez en un seul ensemble de modifications appelé ensemble de modifications. Les changesets sont normalement accompagnés d’un court message expliquant ce qui a été changé et pourquoi..
Lorsque vous validez du code, du moins au début, vous n’enfoncez absolument rien dans le référentiel. En d'autres termes, s'il s'agit de votre premier commit, votre code n'est pas réellement stocké en ligne dans Bitbucket. Au lieu de cela, les modifications n'existent que sur votre ordinateur local. Une fois que vous avez effectué votre poussée initiale, le code existe dans le référentiel..
En fin de compte, le contrôle de source offre un moyen de conserver un historique clair de vos modifications, ainsi qu'un moyen facile de revenir à un moment donné..
Une fois que vous avez appliqué une modification au référentiel distant (via un client ou via la ligne de commande), vous êtes prêt à initialiser une demande d'extraction. Cela signifie que vous êtes prêt à prendre le code que vous avez introduit dans votre fork de la base de code et à demander aux mainteneurs d'origine s'ils fusionnent le code dans leur projet..
Faire cela dans l'application Bitbucket est facile. Allez simplement dans le tableau de bord du référentiel forké, puis cliquez sur Créer une demande de tirage.
Ensuite, une interface vous sera présentée pour vous permettre de créer votre demande d'extraction. La demande inclura votre référentiel, le référentiel d'origine, ainsi qu'un titre et une description..
À partir de là, vous sélectionnez votre référentiel en tant que référentiel source et le référentiel de la base de code d'origine en tant que référentiel cible. Vous devrez peut-être les modifier dans le tableau de bord en fonction de vos besoins..
Par exemple, si vous avez nommé votre copie du code «develop» lors de l'exécution précédente de la commande «git add remote», mais que le codebase d'origine utilise le mot «master», vous devez vous assurer que vous avez sélectionné les bonnes valeurs.
Enfin, c’est là que Bitbucket vous permet d’ajouter des réviseurs à une demande d’aération. Comme mentionné précédemment, il est beaucoup plus facile d'attirer l'attention des responsables de projet afin qu'ils puissent examiner votre travail, émettre tous les commentaires qu'ils pourraient avoir et fusionner (ou rejeter) votre demande..
Bitbucket met automatiquement à jour votre demande d'extraction lorsque vous insérez du code dans le répertoire source afin que le relecteur de projet puisse toujours voir le dernier code qu'il peut extraire..
Lorsque le réviseur demande une modification spécifique, il peut simplement insérer les modifications demandées dans votre copie du référentiel, c'est-à-dire le référentiel créé..
Si vous gérez un référentiel qui reçoit les demandes d'extraction d'autres utilisateurs, vous remarquerez probablement que votre référentiel recevra à la fois une notification dans le tableau de bord de l'application Bitbucket, ainsi que dans votre courrier électronique..
De plus, si vous êtes un réviseur, vous recevrez également une notification et un courrier électronique. Pour gérer toutes les demandes d'extraction entrantes, cliquez sur le lien «Demandes d'extraction» et sélectionnez la demande d'extraction avec laquelle vous souhaitez travailler..
Comme vous pouvez le constater, Bitbucket fournit une interface épurée où vous pouvez discuter et examiner les demandes d'extraction. Les responsables et les téléspectateurs peuvent refuser, fusionner ou demander que du travail supplémentaire soit effectué sur une demande d'extraction donnée..
En supposant qu'une demande soit prête à être fusionnée, vous cliquez sur l'option spécifique pour le faire. Si vous travaillez avec plusieurs réviseurs, Bitbucket indique également clairement qui a approuvé la demande en appliquant une coche à son avatar. Évidemment, plus il y a de vérifications sur les relecteurs, plus la demande est prête pour la fusion..
Mais que se passe-t-il si la fusion de la demande d'extraction échoue? À ce stade, une fusion manuelle doit être effectuée (qui est une partie commune de la gestion du code source, bien qu'elle ne relève pas de la portée de cet article), après quoi le code sera validé dans le référentiel..
De toute évidence, le contrôle à la source offre de nombreux avantages aux équipes; Cependant, les requêtes d'extraction sont une fonctionnalité puissante qui facilite la contribution à un projet et permet à d'autres pairs de réviser votre code, de le commenter et de l'améliorer avant de le fusionner dans la base de code..
Cela seul peut aider l’un à devenir un développeur bien meilleur, grâce à l’expérience d’autres développeurs qui gèrent un projet plus vaste. Si vous ne l'êtes pas déjà, essayez d'utiliser des demandes d'extraction dans votre flux de travail pour améliorer votre code et recueillir les commentaires des autres utilisateurs..
.