Pertanyaan Bagaimana cara menggabungkan 3 di Mercurial / Meld bekerja?


Saya sedang mengerjakan proyek di mana saya memiliki komitmen yang memperkenalkan fitur dengan masalah besar yang tidak segera ditemukan. Sekarang saya ingin menghapus sepenuhnya revisi itu sambil menjaga pekerjaan yang mengikutinya tetapi saya mengalami kesulitan membungkus kepalaku dengan 3 cara ini. Berikut ini adalah grafik proyek saya yang disederhanakan.

o changeset: 134: 7f81764aa03a
| tag: tip
| orang tua: 128: 451d8a19edea
| ringkasan: Dukung perubahan 451d8a19edea
|
| @ changeset: 133: 5eefa40e2a29
| | ringkasan: (Ubah saya harus tetap)
| |
* snip 3 commit *
| o changeset: 129: 5f6182a97d40
| / ringkasan: (Ubah saya harus tetap)
|
o changeset: 128: 451d8a19edea
| ringkasan: (Perubahan yang memperkenalkan masalah besar)
|
o changeset: 127: 4f26dc55455d
| ringkasan: (ringkasan tidak masalah untuk pertanyaan ini)

Jika saya mengerti ini dengan benar, r127 dan r134 adalah persis sama. Ketika saya hg up -C -r 133 lalu jalankan hg merge, Meld muncul dengan tiga bentuk salah satu file saya: lokal, basis, dan lainnya. lokal tampaknya r133 tapi aku mengalami kesulitan membungkus kepalaku apa arti "dasar" dan "lainnya".


32
2017-10-02 16:52


asal


Jawaban:


Lokal r133

Lain r134

Mendasarkan adalah r128 (leluhur bersama untuk r133 dan r 134)

Ketika Anda melakukan 3 cara menggabungkannya membandingkan ketiga dari mereka bersama-sama untuk membantu Anda memutuskan apa yang harus diambil dan dari mana. Dengan melihat perubahan apa yang ada dalam revisi lain dan apa yang dilakukan leluhur bersama Anda, Anda dapat membuat keputusan yang lebih tepat tentang apa yang harus dipertahankan dan apa yang harus diubah.


34
2017-10-02 16:58



Pertanyaan Anda benar-benar membingungkan, tetapi di sini ada beberapa informasi yang dapat membantu Anda.

  • Apa dasar?

Basis adalah versi revisi yang tidak dimodifikasi yang saat ini Anda periksa dan kerjakan. di mana mungkin perubahan lain telah bercabang (Anda dapat memiliki revisi di antara lokal dan basis Anda saat ini!). hanya di mana revisi terdekat di mana tidak ada garpu lain yang dialihkan setelahnya (orang tua yang sama) (dalam kasus Anda r128)

  • Apa itu kepala?

Head adalah revisi terbaru dalam kontrol versi. jika Anda bekerja sendiri hanya pada satu salinan, itu mungkin akan menjadi basis. tetapi rekan kerja mungkin telah memodifikasi file yang sama dan memeriksanya ke kontrol versi, kemudian kepala lebih lambat dari basis Anda.

  • Apa itu lokal?

Lokal adalah versi modifikasi Anda (dalam kasus Anda r133)

  • Apa yang lain?

Lainnya adalah beberapa cabang / cabang yang juga Basis Anda sebagai induk (dalam kasus Anda r134)

  • Bagaimana cara kerja 3-cara penggabungan?

3 cara menggabungkan pekerjaan (setidaknya dalam bentuk melenting) secara hierarkis. biasanya dari kiri ke kanan seperti ini:

lokal> basis> lainnya / kepala

lokal / basis sebagian besar sepele karena hanya apa yang Anda modifikasi

maka Anda bisa menggabungkan perubahan Anda ke dalam revisi kepala atau salah satu rekan kerja Anda atau apa pun.

Mungkin ada beberapa revisi kepala / lainnya, tetapi kemudian bukan tugas Anda untuk bergabung dan karena itu lebih dari 3 cara membandingkan tidak masuk akal.


11
2017-10-02 17:05