Saat membuat perbaikan ke komit sebelumnya, haruskah saya rebase atau menambahkan komit fix up terpisah?

11

Skenario umum dalam pengembangan perangkat lunak adalah meninjau kode kode orang lain. Alat umum untuk melakukan ini adalah membuka Permintaan Tarik.

Pertanyaan saya adalah, ketika masalah ditemukan dalam ulasan, haruskah perubahan itu terjadi

  1. dikomit secara terpisah (komit baru)
  2. atau jika komit yang ada diubah (dengan asumsi tidak ada yang bercabang dari komit Anda sebelumnya ... karena menulis ulang sejarah dari cabang bersama adalah berita buruk).

Untuk skenario pertama, mudah untuk melacak perubahan inkremental, meskipun menambahkan beberapa noise ke histori komit. Opsi kedua memiliki pro dan kontra terbalik.

loeschg
sumber
14
Anda mengatakan "noise" kepada komit, tetapi saya membaca itu adalah riwayat yang akurat . Mengapa mencoba menutupi apa yang sebenarnya terjadi dalam sejarah commit? Peninjauan kode adalah peninjauan kode, tidak perlu melukisnya sebagai sesuatu yang lain. Pilihan saya akan diberikan pada komit terpisah, dan bukan rebase dalam kasus ini.
Thomas Stringer
3
Biasanya saya melakukan keduanya. Posting setiap komit secara terpisah, kemudian setelah review selesai rebase dan gabungkan. GitHub terus berdiskusi tentang permintaan tarik bahkan setelah komit tersebut dihapus atau diganti, sehingga tidak ada kehilangan riwayat yang signifikan dari rebasing. Anda mendapatkan yang terbaik dari kedua dunia.
Ajedi32
1
Saya memiliki perasaan campur aduk tentang jika saya melakukan sesuatu yang entah bagaimana saya kemudian menentukan crash sistem. komitmen itu, jika saya menemukan cacat mereka dalam pembuatan saya segera, adalah yang saya ingin mundur dari sejarah. tetapi itu hanya bit, tidak memerlukan biaya banyak, jadi mungkin hal yang paling aman, hemat biaya, dan konsisten untuk dilakukan (seperti dalam doktrin) selalu dilakukan secara terpisah dan meninggalkan kecelakaan mobil di selokan untuk semua orang untuk lihat sekarang dan selamanya. .... dan Anda dapat menandai setiap cabang yang cacat dengan pesan yang tidak salah untuk tidak membangunnya, jadi tidak ada cabang yang dibagikan.
robert bristow-johnson
Bisakah Anda jelaskan apa itu "rebasing" dan kapan saya menginginkannya?
Kilian Foth

Jawaban:

23

Anda menganggap perbaikan tidak memperkenalkan masalah baru dan menyelesaikan yang lama selesai. Tetapi banyak perbaikan yang layak ditinjau sendiri - dan itu mungkin jauh lebih mudah ketika perubahan tambahan dapat ditinjau secara terpisah.

Doc Brown
sumber