A quoi sert la fonctionnalité d'arrêt dans git?

Quel est le point de la fonction de sortie dans git ?

 git commit --signoff 

Quand devrais-je l'utiliser, le cas échéant?

400
26 дек. Clark Gaebel fixé le 26 décembre 2009-12-26 01:30 09 à 01h30 2009-12-26 01:30
@ 4 réponses

Extract est indispensable pour obtenir des correctifs dans le noyau Linux et dans plusieurs autres projets, mais la plupart des projets ne l'utilisent pas.

Cela a été introduit après le procès de la SCO (et d' autres accusations d'infraction au droit d'auteur émanant de la SCO , dont la plupart n'ont jamais été acceptées devant les tribunaux), en tant que certificat d'origine des développeurs . Il est utilisé pour indiquer que vous confirmez que vous avez créé le correctif, ou que vous confirmez que, à votre connaissance, il a été créé sous une licence open source correspondante ou qu'il vous a été fourni par une autre personne dans ces conditions. Cela peut aider à créer une chaîne de personnes qui assument la responsabilité du statut de copyright de ce code pour s'assurer que le code de copyright qui n'est pas publié sous la licence de logiciel libre (open source) n'est pas inclus dans le noyau.

392
26 дек. La réponse est donnée par Brian Campbell 26 déc. 2009-12-26 01:39 '09 à 1:39 2009-12-26 01:39

La sortie est la chaîne à la fin du message de validation, qui identifie l'auteur de la validation. Son objectif principal est d'améliorer le suivi de qui a fait quoi, en particulier avec les corrections.

Exemple:

 Made an update to xyz. Signed-off-by: Super Developer <super.dev@gmail.com> 

Il doit contenir un vrai nom d'utilisateur s'il est utilisé pour un projet open source.

border=0

Si un développeur de branche a besoin de modifier un peu les correctifs pour les fusionner, il peut demander à l'émetteur de répéter l'opération, mais cela sera contre-productif. Il peut corriger le code et le mettre à la fin afin que l'auteur puisse toujours obtenir un prêt pour le correctif et non pour les erreurs saisies.

 Made an update to xyz. Signed-off-by: Super Developer <super.dev@gmail.com> [uber.dev@gmail.com: renamed methods according to naming conventions.] Signed-off-by: Uber Developer <uber.dev@gmail.com> 

Source: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html

45
26 дек. Hoto répondu 26 décembre 2012-12-26 20:36 '12 à 20h36 2012-12-26 20h36

git 2.7.1 (février 2016) explique que, dans la validation b2c150d (5 janvier 2016), David A. Wheeler ( david-a-wheeler ) .
(combiné par Junio ​​C Hamano - gitster - in commit 7aae9ba , 5 février 2016

git commit page de manuel git commit inclut désormais:

 -s:: --signoff:: 

Ajoutez la ligne de connexion du Signed-off-by à la fin du message du journal de validation.
La valeur d'approbation dépend du projet, mais elle confirme généralement que le responsable a le droit de soumettre ce travail sous une licence et qu'il est d'accord avec le certificat de développeur Origin (voir http://developercertificate.org/ pour plus d'informations).


Développer la documentation décrivant --signoff

Modifiez les divers documents (pages de manuel) pour expliquer plus en détail ce --signoff signifie --signoff .

Ceci a été inspiré par "l' article de la vigne" Bottomley: une proposition modeste de DCO " (certificat de développeur d'origine), où Paul a noté

Le problème avec DCO est qu’ajouter un argument << 27> à git commit ne signifie pas que vous ayez même entendu parler de DCO ( t22>, l’homme ne mentionne pas DCO où que ce soit ), peu importe ce que vous voyez.

Alors, en quoi la présence de " Signed-off-by " signifie-t-elle que l'expéditeur accepte et transmet l'ACD? En conjonction avec le fait, j'ai vu les réponses aux listes sur les correctifs sans SOB, qui ne disent pas plus que "Envoyez-le en utilisant Signed-off-by afin que je puisse le faire."

L'extension de la documentation de git simplifiera l'affirmation selon laquelle les développeurs comprennent --signoff lorsqu'ils l'utilisent.


Veuillez noter que ce message est maintenant disponible (pour git 2.15.x / 2.16, T1 2018) pour git pull .

Voir commet 3a4d2c7 (12 octobre 2017) W. Trevor King ( wking ) .
(la fusion de Junio ​​S Hamano - gitster - dans commit fb4cd88 , 06 novembre 2017

pull : passe --signoff/--no-signoff à " git merge "

la fusion peut prendre --signoff , mais sans tirer vers le bas - la --signoff n'est pas pratique à utiliser; permettez à " pull " de choisir l'option et de la transmettre.

21
06 февр. La réponse est donnée à VonC 06 février 2016-02-06 09:22 '16 à 09:22 AM 2016-02-06 09:22

Il y a de bonnes réponses à cette question. J'essaie d'ajouter une autre réponse plus large, à savoir quels sont les types de lignes / en-têtes / bandes-annonces dans la pratique moderne. Pas grand chose dans le titre (ce n'est pas le seul).

Les en-têtes ou les bas de page (↑ 1), tels que "shutdown" (↑ 2), actuellement utilisés dans des projets tels que Git et Linux, constituent en réalité des métadonnées structurées pour la validation. Tous sont ajoutés à la fin du message de validation, après la partie "forme libre" (non structurée) du corps du message. Ce sont des paires de jetons (ou valeur de clé), généralement limitées à deux points et à un espace ( :␣ .

Comme je l'ai mentionné, «l'arrêt» n'est pas la seule bande-annonce dans la pratique actuelle. Voir par exemple ce commit , associé à "Dirty Cow":

  mm: remove gup_flags FOLL_WRITE games from __get_user_pages() This is an ancient bug that was actually attempted to be fixed once (badly) by me eleven years ago in commit 4ceb5db9757a ("Fix get_user_pages() race for write access") but that was then undone due to problems on s390 by commit f33ea7f404e5 ("fix get_user_pages bug"). In the meantime, the s390 situation has long been fixed, and we can now fix it by checking the pte_dirty() bit properly (and do it better). The s390 dirty bit was implemented in abf09bed3cce ("s390/mm: implement software dirty bits") which made it into v3.9. Earlier kernels will have to look at the page state itself. Also, the VM has become more scalable, and what used a purely theoretical race back then has become easier to trigger. To fix it, we introduce a new internal FOLL_COW flag to mark the "yes, we already did a COW" rather than play racy games with FOLL_WRITE that is very fundamental, and then use the pte dirty flag to validate that the FOLL_COW flag is still valid. Reported-and-tested-by: Phil "not Paul" Oester <kernel@linuxace.com> Acked-by: Hugh Dickins <hughd@google.com> Reviewed-by: Michal Hocko <mhocko@suse.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Kees Cook <keescook@chromium.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Willy Tarreau <w@1wt.eu> Cc: Nick Piggin <npiggin@gmail.com> Cc: Greg Thelen <gthelen@google.com> Cc: stable@vger.kernel.org Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> 

En plus de la bande-annonce dans l'exemple ci-dessus, il y a:

  • "Cc" (a été informé du correctif)
  • "Acked-by" (confirmé par le propriétaire du code, "me semble bon")
  • "Vérifié" (consulté)
  • "Envoyé et vérifié" (aurait et aurait vérifié le problème (je suppose))

D'autres projets, comme par exemple Gerrit, ont leur propre titre et leur signification associée.

Voir: https://git.wiki.kernel.org/index.php/CommitMessageConventions

Morale de l'histoire

J’ai eu l’impression que, bien que la motivation initiale de ces métadonnées spécifiques fût quelques questions juridiques (à en juger par d’autres réponses), la pratique de telles métadonnées a progressé en ce qui concerne le cas de la formation de la chaîne de l’auteur.

[↑ 1]: man git-interpret-trailers
[↑ 2]: Ils sont aussi parfois appelés "sanglot" (initiales).

3
15 дек. La réponse est donnée par Guildenstern le 15 décembre. 2016-12-15 16:06 '16 à 16:06 2016-12-15 16:06

Autres questions sur tags ou Poser une question