Pertanyaan Bagaimana cara menggabungkan dua varian konflik dalam emacs 'emerge?


Menggunakan muncul di Emacs, saya memiliki sesi seperti ini:

<<<<<<< variant A
            522ADC9C14B2FD9D00F56BAD /* close_test_button.png in Resources */,
            522ADC9D14B2FD9D00F56BAD /* close_test_button@2x.png in Resources */,
            522ADCA014B2FDB100F56BAD /* test_failed.png in Resources */,
            522ADCA114B2FDB100F56BAD /* test_failed@2x.png in Resources */,
>>>>>>> variant B
            EC1633C014B2F3E3004B52E7 /* arrow.png in Resources */,
            EC1633C114B2F3E3004B52E7 /* arrow@2x.png in Resources */,
            EC1633C214B2F3E3004B52E7 /* groups.png in Resources */,
            EC1633C314B2F3E3004B52E7 /* groups@2x.png in Resources */,
####### Ancestor
======= end

Saya dapat memilih varian SEBUAH atau B dengan memukul Sebuah atau b di keyboard saya, tetapi bagaimana cara menggabungkan kedua varian, satu demi satu?


5
2018-01-03 09:50


asal


Jawaban:


Cukup gunakan C-hm dalam emerge buffer untuk melihat bantuan untuk mode saat ini. Seperti umumnya untuk sebagian besar mode, mode Emerge minor menampilkan binding kunci dalam teks bantuan ini.

Bantuan itu menunjukkan bahwa Anda dapat memasukkan konten varian A atau B dengan: sayaSebuah dan sayab, sehingga Anda dapat menggunakan fitur itu untuk menyisipkan varian mana yang saat ini tidak dipilih.

Anda juga dapat beralih dari mode 'cepat' default untuk emerge 'edit' mode untuk langsung mengedit teks yang digabung. Menggunakan C-cC-cf dalam mode edit untuk kembali ke mode cepat (karena dalam mode edit, semua perintah emerge harus diawali oleh C-cC-c).

Panduan Emerge memiliki lebih banyak rincian:
M-:  (info "(emacs) Emerge")  MEMBASAHI

Secara khusus, ini menjelaskan perilaku xc binding, yang menggabungkan dua varian dalam satu langkah menggunakan string template yang ditentukan sebelumnya:
M-:  (info "(emacs) Combining in Emerge")  MEMBASAHI

Template default menggunakan sintaksis bersyarat C preprocessor, bagaimanapun, sehingga Anda hampir pasti ingin mengganti itu. Anda dapat mengatur template melalui menu Emerge Options atau dengan emerge-set-combine-template. Untuk sintaks template, lihat:
C-hv  emerge-combine-versions-template  MEMBASAHI 


7
2018-01-03 10:42



Gunakan pintasan:

x-c   (combine the two versions of the difference)

Ini akan menyisipkan dua daerah yang saling bertentangan secara berurutan, menghasilkan output seperti:

vvvvvvvvvvvvvvvvvvvv
#ifdef NEW
522ADC9C14B2FD9D00F56BAD /* close_test_button.png in Resources */,
522ADC9D14B2FD9D00F56BAD /* close_test_button@2x.png in Resources */,
522ADCA014B2FDB100F56BAD /* test_failed.png in Resources */,
522ADCA114B2FDB100F56BAD /* test_failed@2x.png in Resources */,
#else /* not NEW */
EC1633C014B2F3E3004B52E7 /* arrow.png in Resources */,
EC1633C114B2F3E3004B52E7 /* arrow@2x.png in Resources */,
EC1633C214B2F3E3004B52E7 /* groups.png in Resources */,
EC1633C314B2F3E3004B52E7 /* groups@2x.png in Resources */,
#endif /* not NEW */
^^^^^^^^^^^^^^^^^^^^

Dari sana, Anda bisa masuk ke mode edit (shortcut: 'e') hapus makro #ifdef seperlunya untuk membuat penggabungan akhir yang Anda inginkan.


1
2017-11-27 19:20