Apa gunanya fitur Sign Off di Git ?
git commit --signoff
Kapan saya harus menggunakannya, jika sama sekali?
Apa gunanya fitur Sign Off di Git ?
git commit --signoff
Kapan saya harus menggunakannya, jika sama sekali?
Jawaban:
Sign-off adalah persyaratan untuk mendapatkan tambalan ke kernel Linux dan beberapa proyek lainnya, tetapi sebagian besar proyek tidak benar-benar menggunakannya.
Itu diperkenalkan setelah gugatan SCO , (dan tuduhan pelanggaran hak cipta dari SCO lainnya , yang sebagian besar tidak pernah mereka bawa ke pengadilan), sebagai Surat Keterangan Asal Pengembang . Ini digunakan untuk mengatakan bahwa Anda menyatakan bahwa Anda telah membuat tambalan tersebut, atau bahwa Anda menyatakan bahwa sepengetahuan Anda, itu dibuat di bawah lisensi sumber terbuka yang sesuai, atau bahwa itu telah diberikan kepada Anda oleh seseorang lain di bawah persyaratan tersebut. Ini dapat membantu membangun rantai orang yang bertanggung jawab atas status hak cipta dari kode yang dimaksud, untuk membantu memastikan bahwa kode yang dilindungi hak cipta tidak dirilis di bawah lisensi perangkat lunak (sumber terbuka) gratis yang sesuai tidak termasuk dalam kernel.
Sign-off adalah baris di akhir pesan komit yang menyatakan siapa penulis komit tersebut. Tujuan utamanya adalah untuk meningkatkan pelacakan siapa yang melakukan apa, terutama dengan tambalan.
Contoh komit:
Add tests for the payment processor.
Signed-off-by: Humpty Dumpty <humpty.dumpty@example.com>
Itu harus berisi nama asli pengguna jika digunakan untuk proyek open-source.
Jika pengelola cabang perlu sedikit memodifikasi tambalan untuk menggabungkannya, ia bisa meminta submitter untuk melakukan rediff, tetapi itu akan menjadi kontra-produktif. Dia dapat menyesuaikan kode dan menandatangani di akhir sehingga penulis asli masih mendapat kredit untuk patch.
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>
Sumber: http://gerrit.googlecode.com/svn/documentation/2.0/user-signedoffby.html
author
bidang git komit? Saya selalu berpikir itu sebabnya ada bidang yang terpisah author
dan committer
. Penulis menjadi penulis tambalan dan komuter adalah orang yang menerapkan dan mendorong tambalan.
git 2.7.1 (Februari 2016) mengklarifikasi bahwa dalam commit b2c150d (05 Jan 2016) oleh David A. Wheeler ( david-a-wheeler
) .
(Digabung oleh Junio C Hamano - gitster
- dalam komit 7aae9ba , 05 Feb 2016)
git commit
halaman manual sekarang termasuk:
-s::
--signoff::
Tambahkan
Signed-off-by
baris oleh committer di akhir pesan log komit.
Arti penandatanganan tergantung pada proyek, tetapi biasanya menyatakan bahwa pengendara memiliki hak untuk mengirimkan karya ini di bawah lisensi yang sama dan setuju dengan Surat Keterangan Asal Pengembang (lihat https://developercertificate.org untuk informasi lebih lanjut).
Luaskan dokumentasi yang menjelaskan
--signoff
Ubah berbagai file dokumen (halaman manual) untuk menjelaskan secara lebih terperinci apa
--signoff
artinya.Ini terinspirasi oleh " artikel lwn 'Bottomley: Sebuah proposal sederhana tentang DCO' " (Sertifikat Pengembang Asal) di mana paulj mencatat:
Masalah saya dengan DCO adalah bahwa ada menambahkan "
-s
" argumen untuk git commit tidak benar-benar berarti Anda bahkan mendengar tentang DCO ( yanggit commit
halaman manual tidak menyebutkan di mana saja DCO ), tidak pernah keberatan benar-benar melihat hal itu.Jadi bagaimana bisa kehadiran "
signed-off-by
" dengan cara apa pun menyiratkan pengirim setuju dan berkomitmen ke DCO? Digabungkan dengan fakta, saya telah melihat balasan pada daftar ke tambalan tanpa SOB yang mengatakan tidak lebih dari "Kirim ulang ini dengansigned-off-by
sehingga saya dapat melakukan itu".Memperluas dokumentasi git akan membuatnya lebih mudah untuk berargumen bahwa pengembang mengerti
--signoff
ketika mereka menggunakannya.
Perhatikan bahwa signoff ini sekarang (untuk Git 2.15.x / 2.16, Q1 2018) juga tersedia git pull
.
Lihat komit 3a4d2c7 (12 Okt 2017) oleh W. Trevor King ( wking
) .
(Digabung oleh Junio C Hamano - gitster
- di commit fb4cd88 , 06 Nov 2017)
pull
: lolos--signoff/--no-signoff
ke "git merge
"penggabungan dapat mengambil
--signoff
, tetapi tanpa menarik melewati--signoff
, itu tidak nyaman untuk digunakan; izinkan 'pull
untuk mengambil opsi dan meneruskannya.
Ada beberapa jawaban yang bagus untuk pertanyaan ini. Saya akan mencoba menambahkan jawaban yang lebih luas, yaitu tentang apa jenis garis / header / trailer ini dalam praktik saat ini. Tidak terlalu banyak tentang header sign-off pada khususnya (itu bukan satu-satunya).
Header atau trailer (↑ 1) seperti "sign-off" (↑ 2) adalah, dalam praktik saat ini dalam proyek-proyek seperti Git dan Linux, terstruktur metadata yang efektif untuk komit. Ini semua ditambahkan ke akhir pesan komit, setelah bagian "bentuk bebas" (tidak terstruktur) dari tubuh pesan. Ini adalah pasangan token-value (atau key-value ) yang biasanya dibatasi oleh titik dua dan spasi ( :␣
).
Seperti yang saya sebutkan, "sign-off" bukan satu-satunya trailer dalam praktik saat ini. Lihat misalnya komit ini , yang berkaitan dengan "Sapi Kotor":
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>
Selain cuplikan "sign-off" di atas, ada:
Proyek-proyek lain, seperti misalnya Gerrit, memiliki header sendiri dan makna yang terkait untuk mereka.
Lihat: https://git.wiki.kernel.org/index.php/CommitMessageConventions
Adalah kesan saya bahwa, meskipun motivasi awal untuk metadata khusus ini adalah beberapa masalah hukum (dilihat dari jawaban lain), praktik metadata tersebut telah berkembang melampaui hanya berurusan dengan kasus pembentukan rantai kepenulisan.
[↑ 1]: man git-interpret-trailers
[↑ 2]: Tampaknya ini juga kadang-kadang disebut “isak” (inisial).
Signed-off-by:
baris pesan commit oleh proyek kernel Linux (dan proyek Git itu sendiri). Untuk proyek-proyek lain, bagaimanapun, garis tersebut tidak ada artinya kecuali pihak yang ditunjuk proyek yang berarti mereka (misalnya dengan menggambarkan mereka dalam dokumentasi proyek, misalnya Linux SubmittingPatches atau Git ini SubmittingPatches ).