Libelektra: Integrasikan penggabungan 3 arah baru ke dalam alat

Dibuat pada 29 Okt 2019  ·  17Komentar  ·  Sumber: ElektraInitiative/libelektra

Alat harus ditambal untuk menggunakan penggabungan baru

  • [ ] qt-gui (bersama dengan @darddan)
  • [ ] elektrad (bersama dengan @raphi011)
  • [ ] gsettings elektra_settings_backend_sync metode (bersama dengan @mpranj)
  • [ ] kdb impor
  • [ ] editor kdb
  • [ ] kulit kdb
  • [ ] pemasangan kdb
  • [ ] kconfig (https://github.com/ElektraInitiative/kconfig bersama dengan @FelixResch)

Semua 17 komentar

Terima kasih telah melaporkan permasalahan ini! Saya menambahkan daftar lengkap semua alat di atas.

Apakah ada contoh atau dokumentasi bagaimana melakukan ini?

src/tools/kdb/cmerge.cpp adalah satu-satunya hal yang dekat dengan contoh untuk ini

Saya setuju dengan @ raphi011 pasti harus ada contoh yang bagus bagaimana menggunakan API.

Saya menambahkan "kconfig (https://github.com/ElektraInitiative/kconfig bersama dengan @FelixResch)"

Contoh dan file pkg-config akan sangat membantu untuk menggunakan ini.

Saya sepenuhnya setuju, @ raphi011 bisakah Anda menambahkan file pkg-config ini karena Anda sudah tahu cara melakukannya dan @Chemin1 membutuhkan waktu yang cukup lama untuk mempelajarinya.

Contoh yang Anda miliki di #3235 dan #3236

Contoh yang Anda miliki di #3235 dan #3236

Sebenarnya, #3235 belum memiliki panggilan ke elektraMerge . Saya belum yakin bagaimana menerapkan penggabungan di sini tetapi akan melihatnya sesegera mungkin.

3222 sebaliknya memiliki satu.

src/tools/kdb/cmerge.cpp adalah satu-satunya hal yang dekat dengan contoh untuk ini

"dekat dengan" mungkin menyesatkan. cmerge.cpp adalah contohnya juga.

butuh @Chemin1 cukup lama untuk mempelajarinya.

@raphi011 Terima kasih untuk #3241! @ markus2330 benar, saya belum pernah melakukan ini sebelumnya dan tidak tahu cara kerjanya.

@darddan , @FelixResch alangkah baiknya jika Anda bisa melihat contoh-contoh itu juga.

@Chemin1 Saya pikir semua contoh ini tidak persis seperti yang dibutuhkan kconfig atau elektrad. Apa yang mereka butuhkan adalah sesuatu seperti yang terjadi di qt-gui.

Sebenarnya, Anda dapat memperbaiki contoh/kdbset.c untuk memanggil API Anda sebagai gantinya. Ini persis seperti yang dibutuhkan kconfig/elektrad. (Btw. UserInput sebenarnya hanya akan diteruskan ke parameter strategi elektraMerge. Bagian dengan "problemKey" sekarang tidak relevan, Anda dapat menghapus ini.).

Maaf karena tidak menunjukkan sebelumnya bahwa contoh/kdbset.c ada. Mungkin contoh ini bahkan menggantikan kebutuhan akan tutorial tambahan. Bagaimanapun, kita perlu membuat contoh ini lebih menonjol: Misalnya tautan dari tutorial penggabungan dan sertakan dalam dokumentasi kdbSet. @Chemin1 dapatkah Anda melakukan ini?

@Chemin1 Saya pikir semua contoh ini tidak persis seperti yang dibutuhkan kconfig atau elektrad. Apa yang mereka butuhkan adalah sesuatu seperti yang terjadi di qt-gui.

Ini akan sangat membantu. BTW: apa strategi yang diharapkan yang harus digunakan elektrad untuk menggabungkan? ours ?

elektrad, seperti qt-gui idealnya meningkat ke pengguna dan bertanya kepada pengguna tentang bagaimana untuk melanjutkan.

Saya pikir Anda akan memerlukan beberapa titik akhir gabungan, dan dapat mengirim apa yang diinginkan pengguna sebagai parameter.

Pada dasarnya, sesuatu seperti ini perlu dilakukan:

  1. Jika salah satu titik akhir gagal dengan konflik (hanya dapat terjadi untuk "non-get"), pengguna mendapatkan popup yang mengatakan bahwa seseorang memodifikasi KDB secara eksternal
  2. pengguna memilih salah satu strategi, untuk saat ini kami dan mereka sudah cukup
  3. ketika pengguna mengonfirmasi, /kdbMerge (atau nama serupa) dipanggil, di sini kode seperti pada contoh/kdbset.c dijalankan (juga diperlukan go binding untuk itu, atau mungkin lebih baik secara langsung untuk pustaka gabungan)

Saya pikir semua contoh ini tidak persis seperti yang dibutuhkan kconfig atau elektrad. Apa yang mereka butuhkan adalah sesuatu seperti yang terjadi di qt-gui.

Hmm baiklah. Saya akan melihat qt-gui.

@raphi011 Saya harap panggilan di #3247 sedikit membantu Anda meskipun saya bingung dengan apa yang ingin kami tunjukkan dengan contoh.

jika saya bingung dengan apa yang ingin kita tunjukkan dengan contoh.

Apa yang kamu bingungkan? Contoh menunjukkan bagaimana aplikasi/alat harus memanggil elektraMerge ketika kdbSet gagal.

@Chemin1 sepertinya daftarnya tidak lengkap. Saya melewatkan elektra_settings_backend_sync. Itu tidak menggunakan penggabungan 3 arah (terutama karena ini adalah kode C dan tidak akan mudah untuk memanggil API penggabungan lama di sana tetapi ini sekarang, terima kasih kepada Anda, tidak lagi menjadi masalah) tetapi memiliki TODO " manajemen konflik" untuk diselesaikan. Saya menambahkannya di posting teratas.

Saya menandai masalah ini basi karena tidak memiliki aktivitas apa pun selama satu tahun. Saya akan menutupnya dalam dua minggu jika tidak ada aktivitas lebih lanjut. Jika Anda ingin itu hidup kembali, ping masalah dengan menulis pesan di sini atau buat masalah baru dengan sisa masalah ini.
Terima kasih atas kontribusi Anda :sparkling_heart:

@Chemin1 ada kemajuan? Akan sangat bagus untuk 1.0.0 untuk menyingkirkan kode penggabungan lama :sparkling_heart:

Maaf, tapi tidak ada kemajuan nyata. Saya belum menemukan waktu untuk melakukan proyek sampingan selama berbulan-bulan, sayangnya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

markus2330 picture markus2330  ·  4Komentar

markus2330 picture markus2330  ·  3Komentar

markus2330 picture markus2330  ·  3Komentar

mpranj picture mpranj  ·  3Komentar

markus2330 picture markus2330  ·  4Komentar