Libelektra: Integre la nueva combinación de 3 vías en las herramientas

Creado en 29 oct. 2019  ·  17Comentarios  ·  Fuente: ElektraInitiative/libelektra

Las herramientas deben estar parcheadas para usar la nueva combinación.

  • [] qt-gui (junto con @darddan)
  • [] elektrad (junto con @ raphi011)
  • [] gsettings método elektra_settings_backend_sync (junto con @mpranj)
  • [] importación de kdb
  • [] editor de kdb
  • [] shell kdb
  • [] montaje kdb
  • [] kconfig (https://github.com/ElektraInitiative/kconfig junto con @FelixResch)

Todos 17 comentarios

Gracias por informar de este problema. Agregué una lista completa de todas las herramientas anteriores.

¿Hay algún ejemplo o documentación sobre cómo hacer esto?

src/tools/kdb/cmerge.cpp es lo único cercano a un ejemplo para esto

Estoy de acuerdo con @ raphi011 , definitivamente debería haber un buen ejemplo de cómo usar la API.

Agregué "kconfig (https://github.com/ElektraInitiative/kconfig junto con @FelixResch)"

Un ejemplo y un archivo pkg-config realmente ayudarían a usar esto.

Estoy totalmente de acuerdo, @ raphi011 ¿podrías agregar este archivo pkg-config? Ya que sabes cómo hacerlo y a @ Chemin1 le tomaría bastante tiempo aprenderlo.

Ejemplos que tiene en # 3235 y # 3236

Ejemplos que tiene en # 3235 y # 3236

En realidad, # 3235 aún no tiene una llamada a elektraMerge . No estoy seguro de cómo implementar la fusión aquí todavía, pero lo echaré un vistazo lo antes posible.

3222 en contraste tiene uno.

src / tools / kdb / cmerge.cpp es lo único cercano a un ejemplo para esto

"cerca de" podría haber sido engañoso. cmerge.cpp es un ejemplo.

@ Chemin1 necesitaría bastante tiempo para aprenderlo.

@ raphi011 ¡ Gracias por # 3241! @ markus2330 tiene razón, nunca había hecho esto antes y no tengo idea de cómo funciona.

@darddan , @FelixResch Sería genial si también pudieras echar un vistazo a esos ejemplos.

@ Chemin1 Creo que todos estos ejemplos no son exactamente lo que necesitan kconfig o elektrad. Lo que necesitan es algo parecido a lo que sucede en qt-gui.

En realidad, podría arreglar examples / kdbset.c para llamar a su API en su lugar. Esto sería exactamente lo que necesitará kconfig / elektrad. (Por cierto. UserInput simplemente se pasaría al parámetro de estrategia de elektraMerge. La parte con "problemKey" ahora es irrelevante, puede eliminar esto).

Perdón por no señalar antes que examples / kdbset.c existe. Quizás este ejemplo incluso reemplace la necesidad de un tutorial adicional. Sin embargo, de alguna manera tenemos que hacer que este ejemplo sea más destacado: por ejemplo, un enlace del tutorial de combinación e incluirlo en la documentación de kdbSet. @ Chemin1 ¿puedes hacer esto?

@ Chemin1 Creo que todos estos ejemplos no son exactamente lo que necesitan kconfig o elektrad. Lo que necesitan es algo parecido a lo que sucede en qt-gui.

Esto sería muy útil. Por cierto: ¿cuál es la estrategia esperada que elektrad debería usar para la fusión? ours ?

elektrad, como qt-gui, idealmente se dirige al usuario y le pregunta cómo proceder.

Creo que necesitará algún punto final de fusión y puede enviar lo que el usuario quiera como parámetro.

Básicamente, se debe hacer algo como esto:

  1. Si alguno de los puntos finales falla con un conflicto (solo puede ocurrir para el "no obtener"), el usuario obtiene una ventana emergente que dice que alguien modificó externamente el KDB
  2. el usuario selecciona una de las estrategias, por ahora la nuestra y la suya es suficiente
  3. cuando el usuario confirma, se llama a / kdbMerge (o un nombre similar), aquí se ejecuta un código como en examples / kdbset.c (también se necesitará un enlace go para eso, o tal vez incluso mejor directamente para la biblioteca de combinación)

Creo que todos estos ejemplos no son exactamente lo que necesitan kconfig o elektrad. Lo que necesitan es algo parecido a lo que sucede en qt-gui.

Mmm, ok. Echaré un vistazo a qt-gui.

@ raphi011 Espero que la llamada en # 3247 te ayude un poco incluso si estoy confundido por lo que queremos mostrar con el ejemplo.

si estoy confundido por lo que queremos mostrar con el ejemplo.

¿Sobre que estás confundido? El ejemplo muestra cómo una aplicación / herramienta debe llamar a elektraMerge cuando falla kdbSet.

@ Chemin1 parece que la lista no estaba completa después de todo. Me perdí elektra_settings_backend_sync. No usó la combinación de 3 vías (principalmente porque es código C y no sería tan fácil llamar a la antigua API de combinación allí, pero esto ahora, gracias a usted, ya no es un problema) pero tiene un TODO " gestión de conflictos "por resolver. Lo agregué en la publicación superior.

Marco este problema como obsoleto ya que no tuvo actividad durante un año. Lo cerraré en dos semanas si no se produce más actividad. Si desea que vuelva a estar vivo, haga ping al problema escribiendo un mensaje aquí o cree un nuevo problema con el resto de este problema.
Gracias por sus contribuciones: sparkling_heart:

@ Chemin1 ¿ algún progreso? Sería genial para 1.0.0 deshacerse del antiguo código de fusión: sparkling_heart:

Lo siento, pero ningún progreso real. Desafortunadamente, no he tenido tiempo para hacer proyectos paralelos durante meses.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

mpranj picture mpranj  ·  4Comentarios

dominicjaeger picture dominicjaeger  ·  3Comentarios

markus2330 picture markus2330  ·  3Comentarios

sanssecours picture sanssecours  ·  4Comentarios

e1528532 picture e1528532  ·  4Comentarios