Untuk apa fitur shutdown di git?

Apa gunanya fungsi exit di git ?

 git commit --signoff 

Kapan saya harus menggunakannya, jika sama sekali?

400
26 дек. Clark Gaebel ditetapkan pada 26 Desember 2009-12-26 01:30 '09 jam 1:30 pagi 2009-12-26 01:30
@ 4 balasan

Ekstrak adalah persyaratan untuk mendapatkan perbaikan di kernel Linux dan beberapa proyek lainnya, tetapi sebagian besar proyek tidak benar-benar menggunakannya.

Ini diperkenalkan setelah gugatan SCO , (dan tuduhan pe> , yang sebagian besar tidak pernah mereka terima di pengadilan), sebagai Certificate of Origin dari para pengembang . Ini digunakan untuk mengatakan bahwa Anda mengonfirmasi bahwa Anda membuat perbaikan, atau bahwa Anda mengonfirmasi bahwa, sejauh yang Anda tahu, itu dibuat di bawah lisensi sumber terbuka yang sesuai, atau bahwa itu diberikan kepada Anda oleh orang lain di bawah kondisi ini. Ini dapat membantu menciptakan rangkaian orang yang bertanggung jawab atas status hak cipta kode ini untuk memastikan bahwa kode hak cipta yang tidak dirilis di bawah lisensi perangkat lunak bebas (open source) tidak termasuk dalam kernel.

392
26 дек. Jawabannya diberikan oleh Brian Campbell 26 Desember. 2009-12-26 01:39 '09 pada 1:39 2009-12-26 01:39

Outputnya adalah string di akhir pesan komit, yang mengidentifikasi siapa penulis komit itu. Tujuan utamanya adalah untuk meningkatkan pelacakan siapa yang melakukan apa, terutama dengan koreksi.

Contoh:

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

Ini harus berisi nama pengguna asli jika digunakan untuk proyek open source.

Jika pengembang cabang perlu memodifikasi sedikit tambalan untuk menggabungkannya, ia dapat meminta submitter untuk mengu>

 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> 

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

45
26 дек. Hoto menjawab 26 Des 2012-12-26 20:36 '12 jam 8:36 malam 2012-12-26 20:36

git 2.7.1 (Februari 2016) menjelaskan bahwa dalam commit b2c150d (5 Januari 2016) David A. Wheeler ( david-a-wheeler ) .
(dikombinasikan oleh Junio ​​C Hamano - gitster - di commit 7aae9ba , 5 Februari 2016

Halaman manual git commit sekarang meliputi:

 -s:: --signoff:: 

Tambahkan komit- Signed-off-by line yang ditandatangani ke akhir pesan log komit.
Nilai signoff tergantung pada proyek, tetapi biasanya mengkonfirmasi bahwa pengendara memiliki hak untuk mengirimkan karya ini di bawah satu lisensi dan setuju dengan sertifikat pengembang Asal (lihat http://developercertificate.org/ untuk informasi lebih lanjut).


Luaskan dokumentasi yang menggambarkan --signoff

Ubah berbagai dokumen (halaman manual) untuk menjelaskan secara lebih rinci apa --signoff artinya.

Ini terinspirasi oleh " artikel dari pokok anggur" Bottomley: proposal sederhana untuk DCO " (Origin Developer Certificate), di mana Paul mencatat

Masalah dengan DCO adalah bahwa menambahkan argumen << 27> ke git commit di sana tidak berarti Anda bahkan pernah mendengar tentang DCO ( t22> man tidak menyebutkan DCO di mana pun ), apa pun yang Anda lihat.

Jadi, bagaimana kehadiran " Signed-off-by " dengan cara apa pun menyiratkan bahwa pengirim setuju dan mentransmisikan DCO? Sehubungan dengan fakta tersebut, saya melihat jawaban atas daftar di tambalan tanpa SOB, yang mengatakan tidak lebih dari "Kirim dengan menggunakan Signed-off-by sehingga saya bisa melakukannya."

Memperluas dokumentasi git akan menyederhanakan klaim bahwa pengembang memahami --signoff ketika mereka menggunakannya.


Harap dicatat bahwa pesan ini sekarang (untuk git 2.15.x / 2.16, Q1 2018) tersedia untuk git pull .

Lihat komit 3a4d2c7 (12 Oktober 2017) W. Trevor King ( wking ) .
(penggabungan Junio ​​S Hamano - gitster - di commit fb4cd88 , 06 November 2017

pull : pass --signoff/--no-signoff ke " git merge "

gabungan dapat mengambil --signoff , tetapi tanpa menarik --signoff tidak nyaman digunakan; izinkan ' pull ' untuk mengambil opsi dan meneruskannya.

21
06 февр. Jawabannya diberikan VonC 06 Feb. 2016-02-06 09:22 '16 pada jam 9:22 AM 2016-02-06 09:22

Ada beberapa jawaban yang bagus untuk pertanyaan ini. Saya mencoba menambahkan jawaban luas lain, yaitu, apa jenis garis / header / trailer dalam praktik modern. Tidak banyak dalam judul (itu bukan satu-satunya).

Header atau trailer (↑ 1), seperti "shutdown" (↑ 2), dalam praktik saat ini dalam proyek-proyek seperti Git dan Linux, secara efektif terstruktur metadata untuk komit. Semuanya ditambahkan ke akhir pesan komit, setelah bagian "bentuk bebas" (tidak terstruktur) dari badan pesan. Ini adalah pasangan token (atau nilai kunci), yang biasanya terbatas pada titik dua dan spasi ( :␣ ).

Seperti yang saya sebutkan, "shutdown" bukan satu-satunya trailer dalam praktik saat ini. Lihat misalnya komit ini , yang dikaitkan 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 keluar pada contoh di atas, ada:

  • "Cc" (diberitahukan tentang tambalan)
  • "Acked-by" (dikonfirmasi oleh pemilik kode, "terlihat bagus untuk saya")
  • "Terverifikasi" (dilihat)
  • "Terkirim dan diverifikasi" (dilaporkan dan diverifikasi masalahnya (saya kira))

Proyek-proyek lain, seperti, misalnya, Gerrit, memiliki judul dan makna tersendiri.

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

Moral dari cerita ini

Saya mendapat kesan bahwa meskipun motivasi awal untuk metadata spesifik ini adalah beberapa pertanyaan hukum (dinilai dari jawaban lain), praktik metadata tersebut berkembang mengenai kasus pembentukan rantai penulis.

[↑ 1]: man git-interpret-trailers
[↑ 2]: Mereka juga kadang-kadang disebut "isak" (inisial).

3
15 дек. Jawabannya diberikan oleh Guildenstern 15 Des. 2016-12-15 16:06 '16 pada 16:06 2016-12-15 16:06

Pertanyaan lain tentang tag atau Ajukan Pertanyaan