คำตอบ:
การออกจากระบบเป็นข้อกำหนดสำหรับการติดตั้งแพตช์ในเคอร์เนล Linux และโครงการอื่น ๆ สองสามโครงการ แต่โครงการส่วนใหญ่ไม่ได้ใช้งานจริง
มันได้รับการแนะนำในการปลุกของคดี SCO (และข้อกล่าวหาอื่น ๆ ของการละเมิดลิขสิทธิ์จาก SCOซึ่งส่วนใหญ่ที่พวกเขาไม่เคยเอาไปศาล) เป็นนักพัฒนาหนังสือรับรองแหล่งกำเนิด ใช้เพื่อบอกว่าคุณรับรองว่าคุณได้สร้างแพทช์ที่เป็นปัญหาหรือรับรองว่าคุณได้รับความรู้ที่ดีที่สุดมันถูกสร้างขึ้นภายใต้ใบอนุญาตโอเพนซอร์ซที่เหมาะสมหรือมอบให้กับคุณโดยบุคคลอื่น ภายใต้ข้อกำหนดเหล่านั้น สิ่งนี้สามารถช่วยสร้างเครือข่ายของคนที่รับผิดชอบต่อสถานะลิขสิทธิ์ของรหัสที่เป็นปัญหาเพื่อช่วยให้แน่ใจว่ารหัสลิขสิทธิ์ที่ไม่ได้เผยแพร่ภายใต้ลิขสิทธิ์ซอฟต์แวร์ฟรี (โอเพ่นซอร์ส) ไม่รวมอยู่ในเคอร์เนล
การลงชื่อออกเป็นบรรทัดที่ท้ายข้อความยืนยันซึ่งรับรองว่าใครเป็นผู้เขียนข้อความ วัตถุประสงค์หลักคือเพื่อปรับปรุงการติดตามว่าใครทำอะไรโดยเฉพาะกับแพทช์
ตัวอย่างการกระทำ:
Add tests for the payment processor.
Signed-off-by: Humpty Dumpty <humpty.dumpty@example.com>
มันควรมีชื่อจริงของผู้ใช้หากใช้สำหรับโครงการโอเพนซอร์ส
หากผู้ดูแลสาขาจำเป็นต้องปรับเปลี่ยนแพตช์เล็กน้อยเพื่อรวมพวกเขาเข้าด้วยกันเขาอาจขอให้ผู้ส่งซ้ำอีก แต่มันจะเป็นผลดี เขาสามารถปรับรหัสและปิดท้ายการลงชื่อเข้าใช้เพื่อให้ผู้เขียนดั้งเดิมยังคงได้รับเครดิตสำหรับการแก้ไข
Add tests for the payment processor.
Signed-off-by: Humpty Dumpty <humpty.dumpty@example.com>
[Project Maintainer: Renamed test methods according to naming convention.]
Signed-off-by: Project Maintainer <project.maintainer@example.com>
ที่มา: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html
author
เขตข้อมูลของคอมไพล์หรือไม่ ฉันมักจะคิดว่านั่นเป็นสาเหตุที่มีการแยกauthor
และcommitter
เขตข้อมูล ผู้เขียนเป็นนักเขียนแพทช์และผู้สื่อสารเป็นคนที่ใช้และผลักดันแพทช์
คอมไพล์ 2.7.1 (กุมภาพันธ์ 2016) ชี้แจงว่าในการกระทำ b2c150d (5 มกราคม 2016) โดยเดวิดเอวีลเลอร์ (david-a-wheeler
)
(ผสานโดยJunio C Hamano - gitster
-ในการกระทำ 7aae9ba , 5 กุมภาพันธ์ 2016)
git commit
หน้าคนตอนนี้รวมถึง:
-s::
--signoff::
เพิ่ม
Signed-off-by
บรรทัดโดยคอมมิทเตอร์ในตอนท้ายของข้อความบันทึกการกระทำ
ความหมายของการออกจากระบบขึ้นอยู่กับโครงการ แต่โดยทั่วไปแล้วมันรับรองว่าผู้เดินทางมีสิทธิ์ที่จะส่งงานนี้ภายใต้ใบอนุญาตเดียวกันและตกลงที่จะมอบใบรับรองผู้พัฒนาแหล่งกำเนิดสินค้า (ดูhttps://developercertificate.orgสำหรับข้อมูลเพิ่มเติม)
ขยายเอกสารอธิบาย
--signoff
แก้ไขไฟล์เอกสาร (man page) ต่างๆเพื่ออธิบายรายละเอียดเพิ่มเติมว่าอะไร
--signoff
หมายอย่างไรสิ่งนี้ได้รับแรงบันดาลใจจาก " บทความ lwn 'Bottomley: ข้อเสนอเล็กน้อยใน DCO' " (ใบรับรองนักพัฒนาแหล่งกำเนิด) ที่ paulj ตั้งข้อสังเกตไว้:
ปัญหาที่ฉันมีกับ DCO คือว่ามีการเพิ่ม "
-s
" อาร์กิวเมนต์คอมไพล์กระทำไม่จริงหมายความว่าคุณเคยได้ยินแม้แต่ของ DCO ( หน้าคนทำให้การพูดถึงที่ใดก็ได้ DCO ไม่มี ) ไม่เคยคิดว่ามันเห็นจริงgit commit
ดังนั้นการมีอยู่ของ "
signed-off-by
" ในทางใดที่บ่งบอกว่าผู้ส่งเห็นด้วยและตกลงกับ DCO อย่างไร เมื่อรวมกับความจริงแล้วฉันได้เห็นคำตอบในรายการไปยังชุดข้อมูลแก้ไขที่ไม่มี SOB ซึ่งไม่ได้พูดอะไรมากไปกว่า "ส่งอีกครั้งด้วยsigned-off-by
เพื่อให้ฉันสามารถยืนยันได้"การขยายเอกสารของ git จะทำให้ง่ายขึ้นในการโต้แย้งว่านักพัฒนาเข้าใจ
--signoff
เมื่อใช้
โปรดทราบว่าขณะนี้การลงนามนี้ (สำหรับ Git 2.15.x / 2.16, Q1 2018) มีให้git pull
เช่นกัน
ดูกระทำ 3a4d2c7 (12 ตุลาคม 2017) โดยดับบลิวเทรเวอร์คิง (wking
)
(ผสานโดยJunio C Hamano - gitster
- in fb4cd88 , 06 พ.ย. 2017)
pull
: ส่ง--signoff/--no-signoff
ไปที่ "git merge
"การผสานสามารถทำได้
--signoff
แต่ไม่จำเป็นต้องดึงผ่าน--signoff
ลงมาจึงไม่สะดวกที่จะใช้ อนุญาตให้ 'pull
' ใช้ตัวเลือกและส่งผ่าน
มีคำตอบที่ดีสำหรับคำถามนี้ ฉันจะพยายามเพิ่มคำตอบที่กว้างขึ้นนั่นคือเกี่ยวกับสิ่งที่บรรทัด / หัว / ตัวอย่างเหล่านี้เกี่ยวกับการปฏิบัติในปัจจุบัน ไม่มากเกี่ยวกับส่วนหัวการลงชื่อออกโดยเฉพาะ (ไม่ใช่เพียงส่วนหัวเดียว)
ส่วนหัวหรือตัวอย่าง (↑ 1) เช่น“ sign-off” (↑ 2) คือในการปฏิบัติปัจจุบันในโครงการเช่น Git และ Linux โครงสร้างข้อมูลเมตาได้อย่างมีประสิทธิภาพสำหรับการกระทำ สิ่งเหล่านี้จะถูกผนวกเข้ากับส่วนท้ายของข้อความยืนยันหลังจากส่วน "รูปแบบอิสระ" (ไม่มีโครงสร้าง) ของเนื้อความของข้อความ คู่เหล่านี้คือโทเค็น - ค่า (หรือคีย์ - ค่า ) โดยทั่วไปจะคั่นด้วยโคลอนและเว้นวรรค ( :␣
)
เช่นเดียวกับที่ฉันกล่าวถึง“ การลงชื่อออก” ไม่ใช่ตัวอย่างเดียวในการปฏิบัติปัจจุบัน ดูตัวอย่างการกระทำนี้ที่เกี่ยวข้องกับ“ 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>
นอกเหนือจากตัวอย่าง“ การลงชื่อออก” ในตัวอย่างข้างต้นแล้วยังมี:
โครงการอื่น ๆ เช่น Gerrit มีส่วนหัวและความหมายที่เกี่ยวข้องสำหรับพวกเขา
ดู: https://git.wiki.kernel.org/index.php/CommitMessageConventions
มันเป็นความประทับใจของฉันที่แม้ว่าแรงจูงใจเริ่มต้นสำหรับเมตาดาต้านี้โดยเฉพาะคือประเด็นทางกฎหมาย (ตัดสินโดยคำตอบอื่น ๆ ) การฝึกฝนเมตาดาต้าดังกล่าวมีความก้าวหน้าเกินกว่าจะจัดการกับกรณีของการสร้างเครือข่ายผู้ประพันธ์
[↑ 1]: man git-interpret-trailers
[↑ 2]: บางครั้งก็เรียกว่า "สะอื้น" (ชื่อย่อ) ดูเหมือนว่า
Signed-off-by:
บรรทัดข้อความการคอมมิชชันโดยโครงการเคอร์เนล Linux (และโครงการ Git เอง) อย่างไรก็ตามสำหรับโครงการอื่น ๆ บรรทัดดังกล่าวไม่มีความหมายเว้นแต่ว่าโครงการจะกำหนดความหมายให้กับพวกเขา (เช่นโดยอธิบายไว้ในเอกสารประกอบของโครงการเช่น Linux's SubmittingPatchesหรือ Gm's SubmittingPatchesของ Git )