Што такое функцыя выключэння ў Git для?

Якая кропка функцыі Выйсці ў Git ?

 git commit --signoff 

Калі я павінен выкарыстоўваць яго, калі наогул?

400
26 дек. зададзены Clark Gaebel 26 снеж. 2009-12-26 01:30 '09 у 01:30 2009-12-26 01:30
@ 4 адказаў

Выпіска - гэта патрабаванне для атрымання выпраўленняў у ядры Linux і некалькіх іншых праектах, але большасць праектаў на самай справе яго не выкарыстоўваюць.

Гэта было ўведзена пасля пазоў SCO , (і іншыя абвінавачванні ў парушэнні аўтарскіх правоў ад ШАС , большасць з якіх яны ніколі не прымалі ў судзе), як Сертыфікат паходжання распрацоўшчыкаў . Ён выкарыстоўваецца, каб сказаць, што вы пацвярджаеце, што вы стварылі выпраўленне, або што вы пацвярджаеце, што, наколькі вам вядома, яно было створана па адпаведнай ліцэнзіі з адкрытым зыходным кодам або што яно было прадастаўлена вам кімсьці інакш пад гэтымі ўмовамі. Гэта можа дапамагчы стварыць ланцужок людзей, якія бяруць на сябе адказнасць за статус аўтарскага права на дадзены код, каб гарантаваць, што аўтарскі код, ня выпушчаны ў адпаведнасці з ліцэнзіяй бясплатнага праграмнага забеспячэння (з адкрытым зыходным кодам), не будзе ўключаны ў ядро.

392
26 дек. адказ дадзены Brian Campbell 26 снеж. 2009-12-26 01:39 '09 у 01:39 2009-12-26 01:39

Выснова - гэта радок у канцы паведамлення фіксацыі, якая сведчыць, хто з'яўляецца аўтарам фіксацыі. Яго асноўная мэта - палепшыць адсочванне таго, хто што зрабіў, асабліва з выпраўленнямі.

прыклад:

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

Ён павінен утрымліваць рэальнае імя карыстальніка, калі ён выкарыстоўваецца для праекта з адкрытым зыходным кодам.

border=0

Калі распрацоўніку галінкі трэба трохі мадыфікаваць патчы, каб зліць іх, ён можа папрасіць падаўца паўтарыць, але гэта будзе контрпрадуктыўна. Ён можа скарэктаваць код і змясціць яго ў канец, каб аўтар ўсё яшчэ атрымліваў крэдыт за патч, а не за уведзеныя памылкі.

 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> 

Крыніца: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html

45
26 дек. адказ дадзены Hoto 26 снеж. 2012-12-26 20:36 '12 а 20:36 2012/12/26 20:36

git 2.7.1 (люты 2016 г.) тлумачыць, што ў commit b2c150d (05 студзеня 2016 г.) Дэвід А. Уілерам ( david-a-wheeler ) .
(аб'яднана Junio C Hamano - gitster - у commit 7aae9ba , 05 Лютага 2016 г.

git commit Man Page цяпер ўключае ў сябе:

 -s:: --signoff:: 

Дадайце радок Signed-off-by коммиттера ў канцы паведамлення часопіса фіксацыі.
Значэнне signoff залежыць ад праекту, але яна звычайна пацвярджае, што коммиттер мае права адправіць гэтую працу пад адной ліцэнзіяй і згодны з сертыфікатам распрацоўніка Origin (гл. Http://developercertificate.org/ для атрымання дадатковай інфармацыі).


Разгарнуць дакументацыю, якая апісвае --signoff

Зменіце розныя дакументы (man-старонкі), каб больш падрабязна растлумачыць, што азначае --signoff .

Гэта было натхнёнае " артыкул з лаза" Bottomley: сціплае прапанову па DCO " (сертыфікат распрацоўніка Origin), дзе Паўль адзначыў

Праблема з DCO заключаецца ў тым, што там даданне аргументу << 27> да git commit не азначае, што вы нават чулі пра DCO (t22> man не згадвае DCO ў любым месцы), усё роўна, што гэта наогул бачылі.

Такім чынам, якім чынам прысутнасць " Signed-off-by " якім-небудзь чынам на ўвазе, што адпраўнік згаджаецца і перадае DCO? У спалучэнні з фактам я бачыў адказы на спісы на патчы без SOB, якія кажуць не больш, чым "Адправіць гэта з дапамогай Signed-off-by , каб я мог яго здзейсніць".

Пашырэнне дакументацыі git спросціць зацвярджэнне, што распрацоўшчыкі зразумелі --signoff , калі яны яго выкарыстоўваюць.


Звярніце ўвагу, што гэта паведамленне теперь (для git 2.15.x / 2.16, Q1 2018) даступна для git pull .

См. Commit 3a4d2c7 (12 кастрычніка 2017 г.) W. Тревор Кінг ( wking ) .
(зліццё Юнио З хама - gitster - у commit fb4cd88 , 06 Лістапада 2017 г.

pull : перадаць --signoff/--no-signoff ў " git merge "

merge можа прымаць --signoff , але без выцягвання --signoff ўніз, гэта нязручна выкарыстоўваць; дазволіць ' pull ' ўзяць опцыю і перадаць яе праз.

21
06 февр. адказ дадзены VonC 06 февр. 2016-02-06 09:22 '16 у 09:22 2016/02/06 09:22

Ёсць некалькі добрых адказаў на гэтае пытанне. Я спрабую дадаць яшчэ шырокі адказ, а менавіта пра тое, што такое віды ліній / загалоўкаў / трэйлераў ў сучаснай практыцы. Не так шмат у загалоўку (яго не адзіны).

Загалоўкі або трэйлеры (↑ 1), такія як "выключэнне" (↑ 2), у бягучым практыка ў такіх праектах, як Git і Linux, эфектыўна структураваныя метададзеныя для фіксацыі. Усе яны дададзены ў канец паведамлення фіксацыі, пасля "свабоднай формы" (неструктураваны) часткі цела паведамленні. Гэта пары токенаў (або ключ-значэнне), якія звычайна абмежаваныя двукроп'е і прабел ( :␣ ).

Як я ўжо згадваў, "выключэнне" - не адзіны трэйлер ў бягучай практыцы. Бачыць напрыклад this commit , які звязаны з "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> attempted to be fixed once  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> trigger  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> mark the  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> validate that  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> 

У дадатак да трэйлеры "sign-off" у прыведзеным вышэй прыкладзе ёсць:

  • "Cc" (быў апавешчаны аб патчы)
  • "Acked-by" (пацверджаны уладальнікам кода, "выглядае добра для мяне")
  • "Праверана" (прагледжана)
  • "Отправлено і праверана" (паведамляецца і правяраецца праблема (я мяркую))

Іншыя праекты, такія як, напрыклад, Gerrit, маюць свае ўласныя загалоўкі і звязаны з імі сэнс.

Глядзіце: https://git.wiki.kernel.org/index.php/CommitMessageConventions

мараль гісторыі

У мяне склалася ўражанне, што хоць першапачатковая матывацыя для гэтага канкрэтнымі метададзенымі былі некаторыя юрыдычныя пытанні (мяркуючы па іншай адказы), практыка такіх метададзеных прагрэсавала які тычыцца выпадку фарміравання аўтарскай ланцужкі.

[↑ 1]: man git-interpret-trailers
[↑ 2]: Яны таксама часам называюцца "sob" (ініцыялы).

3
15 дек. адказ дадзены Guildenstern 15 снеж. 2016-12-15 16:06 '16 у 16:06 2016/12/15 16:06

Іншыя пытанні па пазнаках або Задайце пытанне