Cela découle de ma question précédente: Puis-je sélectionner qui peut contribuer à mon projet Open Source?
Nayant jamais travaillé sur des logiciels open source auparavant et développant mes propres mini-applications que jespère publier sur lApp Store parfois cet été, je ne suis pas du tout familier avec la manière la plus open source des structures de développement sont mises en place (forks, référentiels principaux …).
Une chose qui est apparue est la mention dune pull request. Quest-ce quune pull request?
Réponse
Le terme « pull request » vient de git
, où le git pull
est utilisée pour fusionner un référentiel différent dans votre référentiel local. Donc, si quelquun dautre a une copie de votre référentiel git
, et y apporte les modifications quil aimerait que vous pour incorporer, ils peuvent vous demander de pull
les changements de leur référentiel; ils « demande une pull
, doù le terme » pull request « .
De nos jours, pour la plupart des utilisateurs, cela a tendance à être caché derrière une interface graphique quelconque, sur Github ou Bitbucket ou via Gerrit par exemple; mais le principe reste le même: quelquun copie votre référentiel, apporte des modifications et demande quils soient fusionnés dans votre propre copie, probablement après que vous « les ayez examinés.
Commentaires
- Git dispose également dune commande
git request-pull
. Cela produit un message écrit que vous pouvez envoyer à quelquun dautre, en linvitant à utilisergit pull
pour incorporer votre travail dans sa copie du logiciel. - Ne peut être expliqué plus clairement pour les débutants.
Réponse
Si vous disposez de systèmes de contrôle de version distribué , chaque développeur a une copie du référentiel complet. Si vous modifiez quelque chose dans le logiciel, vous validez vos modifications dans votre référentiel local. Si différents référentiels doivent avoir ces modifications, vous pouvez les pousser (déplacer les modifications vers un autre référentiel, vous avez le droit pour écrire) ou extraire les modifications (copier la révision pour m autres référentiels au vôtre). Comme de nombreux projets ont un référentiel principal, une pull-request est la requête que le mainteneur extrait vos modifications.
Lire un peu dessus , il semble que le terme soit également utilisé sur le contrôle de version non distribué, si un utilisateur demande linclusion de ses correctifs dans la branche principale du projet. Une autre lecture spécialement pour github: https://help.github.com/articles/using-pull-requests/
Réponse
Une requête dextraction est liée aux systèmes de contrôle de version. Vous pouvez avoir plusieurs groupes dutilisateurs:
- Administrateurs / Propriétaires
- Contributeurs
- Testeurs
Vous voulez chacune de ces personnes pour pouvoir faire différentes choses:
- Administrateurs / Propriétaires
On peut faire confiance à ces personnes. Ils peuvent avoir un accès complet au référentiel en question, y compris des droits complets pour valider ce quils veulent quand ils le souhaitent. - Contributeurs
Il peut sagir de personnes provenant dInternet au hasard; il peut sagir de personnes de moindre importance dans une entreprise. Dans tous les cas, vous ne voulez probablement pas quils puissent sengager directement dans la base de code – vous voulez dabord examiner leurs modifications.
Cest là quinterviennent les demandes dextraction. Au lieu dautoriser modifications directes apportées à la base de code de la part de vos contributeurs, ils vont à la place bifurquer le référentiel, en créant une copie sur leur machine locale, et le développer. Lorsquils auront terminé, ils pourront créer une pull request contenant leur mise à jour code. Un membre du groupe supérieur peut ensuite examiner leurs modifications pour vérifier leur exactitude et leur complicité avec les normes, et fusionner leurs modifications si elles sont conformes.
Commentaires
- Légèrement hors sujet, mais même les personnes qui peuvent fusionner directement leurs propres modifications devraient soumettre des PR à leurs pairs. En supposant que vous ‘ travaillez dans une équipe qui lest. Si vous ‘ non, je suppose que ‘ est ce que CodeReview est pour.
- OK. Les étapes sont donc les suivantes: vous forkez le dépôt principal, le tirez sur votre PC, le modifiez, vous le validez et le poussez vers votre branche fourchue, puis demandez à ladministrateur de tirer et de fusionner de votre branche fourchue dans la branche principale?
Réponse
Une pull request (PR) est une méthode de soumission de contributions à un projet de développement ouvert. Cela se produit lorsquun développeur demande que les modifications validées dans un référentiel externe soient prises en compte pour inclusion dans le référentiel principal dun projet après lexamen par les pairs.
Source: Quest-ce quune demande dextraction? chez OSS Watch
Exemple simple cest lorsque vous clonez / divisez le référentiel open source, effectuez des modifications / validations et afin de fusionner les modifications dans le référentiel principal, vous devez envoyer la pull request qui consiste en tous vos commits regroupés en un seul élément logique afin quil puisse être examiné par dautres développeurs.
Cela présente certains avantages par rapport aux commits et aux push standards, car vous avez une paire dyeux supplémentaire à vérifier et éviter les problèmes courants / cachés / erreurs avant les changements réels.
Voir quelques exemples de relations publiques:
- GitHub ici ou ici
- Chromium Code Reviews (équivalent à pull-request)