Cara kerja semua sistem kontrol versi yang saya kenal adalah bahwa setiap komit dikaitkan ke satu pengembang. Munculnya Agile Engineering, dan khususnya pemrograman pasangan, telah mengarah pada situasi di mana dua pengembang telah memberikan kontribusi yang signifikan untuk tugas yang sama, misalnya perbaikan bug.
Masalah atribusi tidak akan menjadi masalah besar di lingkungan kerja karena manajer proyek akan mengetahui pekerjaan yang dilakukan pasangan, tetapi bagaimana jika dua kontributor open source memutuskan untuk memasangkan dan mengeluarkan beberapa kode ke proyek tertentu yang tidak tahu bahwa mereka bekerja sama. Adakah cara bagi sistem kontrol versi seperti Git untuk mengatribusikan patch tertentu ke beberapa pengembang?
git
svn
version-control
bazaar
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
sumber
sumber
Jawaban:
Satu masalah dengan pendekatan ini adalah Anda tidak dapat membuat kunci bertanda tangan untuk grup pengembang ini, jadi pada dasarnya Anda dapat menambahkan siapa pun ke daftar ini meskipun mereka tidak bekerja pada fitur dan Github akan memperlakukannya seolah-olah mereka melakukannya. Namun, ini seharusnya tidak menjadi masalah dalam banyak kasus.
misalnya
Co-authored-by: Linus Torvalds <[email protected]>
Dengan penulis normal atau grup tanda tangan (metode lama) Anda akan melihatnya tidak ditandatangani dan tahu bahwa Anda tidak dapat mempercayai komit. Namun, tidak ada proses penandatanganan untuk rekan penulis.
Jawaban yang paling ketinggalan jaman:
Salah satu solusinya adalah dengan menetapkan nama untuk pasangan:
Berikut adalah laporan bug terkait dengan solusi sementara lainnya:
Bug git-core: Git harus mendukung banyak penulis untuk komit
sumber
git show <COMMIT_ID> --format=email
Konvensi git adalah menggunakan Co-Authored-By di akhir pesan komit ( kernel git: Konvensi Pesan Komit , mengacu pada Pesan Komit Openstack ). Ini juga salah satu solusi untuk bug git-core yang ditautkan dalam jawaban Gerry
Dalam komentar pada 5 Mei 2010, Josh Triplett juga menyarankan untuk menerapkan dukungan terkait di git.
Seperti yang ditunjukkan Llopis dalam sebuah komentar, GitHub mengumumkan dukungan untuk ini di blog mereka pada 29 Jan 2018: Berkomitmen bersama dengan rekan penulis ( detail ).
sumber
Untuk Bazaar:
Nama-nama tersebut akan ditampilkan di log secara terpisah dari nama pelaku.
sumber
git-pair
https://github.com/pivotal/git_scripts#git-pair
Skrip sederhana dari Pivotal ini untuk mengotomatiskan atribusi pemrograman pasangan Git.
Anda membuat
.pairs
file seperti:lalu:
set:
untukmu.
sumber
git membedakan antara komit
author
dancommitter
[1]. Anda dapat menggunakannya sebagai solusi, mis. Tandatangani diri Anda sebagai thecommitter
dan rekan penulis Anda sebagaiauthor
:Dengan cara ini, Anda dan rekan penulis Anda akan tercatat di riwayat git. Berlari
git log --format=fuller
, akan memberi Anda sesuatu seperti:[1] Perbedaan antara penulis dan pelaku di Git?
sumber
Alternatifnya, ada proyek open source , yang saya kontributornya, di GitHub yang menyediakan cara yang baik untuk melakukannya dari baris perintah. Proyek ini membantu Anda menyetel alias untuk membuat komit otomatis bersama sebagai berikut:
$ git co-commit -m "Commit message" --co "co-author <co-author-email>"
Dengan menggunakan pendekatan ini, Anda dapat membuat komit yang ditulis bersama tanpa antarmuka grafis.
sumber
Kami menambahkan nama kami ke setiap pesan komit di akhir sebagai konvensi misalnya:
Implemented cool feature <Aneesh | Hiren>
sumber
Co-Authored-By
saya sebutkan dalam jawaban terpisahCoba git-mob , kami membuatnya untuk menghubungkan penulis bersama pada komit.
Misalnya
sumber
Sebagian besar alat penulis bersama tidak mendukung pelengkapan otomatis. Anda dapat mencoba git-coco , yang ditulis dengan python3 (Saya pengembangnya).
git-coco
mendukung pelengkapan otomatis dan saran otomatis. Berikut ini adalah pelengkapan otomatis snapshot pada penulis sampelsumber