Libelektra: Integrieren Sie die neue 3-Wege-Zusammenführung in Tools

Erstellt am 29. Okt. 2019  ·  17Kommentare  ·  Quelle: ElektraInitiative/libelektra

Tools sollten gepatcht werden, um die neue Zusammenführung zu verwenden

  • [ ] qt-gui (zusammen mit @darddan)
  • [ ] elektrad (zusammen mit @raphi011)
  • [ ] gsettings elektra_settings_backend_sync Methode (zusammen mit @mpranj)
  • [ ] kdb-Import
  • [ ] kdb-Editor
  • [ ] kdb-Shell
  • [ ] kdb mount
  • [ ] kconfig (https://github.com/ElektraInitiative/kconfig zusammen mit @FelixResch)

Alle 17 Kommentare

Vielen Dank für die Meldung dieses Problems! Ich habe oben eine vollständige Liste aller Tools hinzugefügt.

Gibt es ein Beispiel oder eine Dokumentation, wie das geht?

src/tools/kdb/cmerge.cpp ist das einzige, was einem Beispiel dafür nahe kommt

Ich stimme @raphi011 zu, es sollte definitiv ein schönes Beispiel für die Verwendung der API geben.

Ich habe "kconfig (https://github.com/ElektraInitiative/kconfig zusammen mit @FelixResch)" hinzugefügt.

Ein Beispiel und eine pkg-config-Datei würden wirklich helfen, dies zu verwenden.

Ich stimme voll und ganz zu, @raphi011 können Sie vielleicht diese pkg-config-Datei hinzufügen, da Sie bereits wissen, wie es geht, und es würde @Chemin1 einige Zeit

Beispiele, die Sie in #3235 und #3236 haben

Beispiele, die Sie in #3235 und #3236 haben

Tatsächlich hat #3235 noch keinen Anruf an elektraMerge . Ich bin mir noch nicht sicher, wie die Zusammenführung hier implementiert wird, werde sie mir aber so schnell wie möglich ansehen.

3222 dagegen hat einen.

src/tools/kdb/cmerge.cpp ist das einzige, was einem Beispiel dafür nahe kommt

"in der Nähe" könnte irreführend gewesen sein. cmerge.cpp ist auch ein Beispiel.

@Chemin1 würde einige Zeit

@raphi011 Danke für #3241! @markus2330 hat recht, ich habe das noch nie gemacht und keine Ahnung, wie es funktioniert.

@darddan , @FelixResch es wäre toll, wenn du dir auch diese Beispiele anschauen könntest.

@Chemin1 Ich denke, all diese Beispiele sind nicht genau das, was kconfig oder elektrad brauchen. Was sie brauchen, ist so etwas wie das, was in der qt-gui passiert.

Tatsächlich könnten Sie example/kdbset.c korrigieren, um stattdessen Ihre API aufzurufen. Dies wäre genau das, was kconfig/elektrad benötigt. (Übrigens würde der userInput eigentlich einfach an den Strategieparameter von elektraMerge übergeben. Der Teil mit "problemKey" ist jetzt irrelevant, diesen können Sie entfernen.).

Entschuldigung, dass ich nicht früher darauf hingewiesen habe, dass example/kdbset.c existiert. Vielleicht ersetzt dieses Beispiel sogar die Notwendigkeit eines zusätzlichen Tutorials. Irgendwie müssen wir dieses Beispiel jedoch prominenter machen: ZB Link aus dem Merge-Tutorial und in die kdbSet-Dokumentation aufnehmen. @Chemin1 kannst du das machen?

@Chemin1 Ich denke, all diese Beispiele sind nicht genau das, was kconfig oder elektrad brauchen. Was sie brauchen, ist so etwas wie das, was in der qt-gui passiert.

Dies wäre sehr hilfreich. Übrigens: Was ist die erwartete Strategie, die elektrad zum Zusammenführen verwenden sollte? ours ?

elektrad, wie qt-gui eskaliert idealerweise an den Benutzer und fragt den Benutzer nach der weiteren Vorgehensweise.

Ich denke, Sie benötigen einen Merge-Endpunkt und können senden, was der Benutzer als Parameter wünscht.

Grundsätzlich muss so etwas gemacht werden:

  1. Wenn einer der Endpunkte mit einem Konflikt fehlschlägt (kann nur bei "non-get" passieren), erhält der Benutzer ein Popup, das besagt, dass jemand KDB extern modifiziert hat
  2. der Benutzer wählt eine der Strategien aus, für jetzt reicht unsere und ihre
  3. wenn der Benutzer bestätigt, wird /kdbMerge (oder ähnlicher Name) aufgerufen, hier wird ein Code wie in example/kdbset.c ausgeführt (auch dafür wird ein Go-Binding benötigt, oder vielleicht noch besser direkt für die Merge-Bibliothek)

Ich denke, all diese Beispiele sind nicht genau das, was kconfig oder elektrad brauchen. Was sie brauchen, ist so etwas wie das, was in der qt-gui passiert.

Hm okay. Ich werde mir qt-gui anschauen.

@raphi011 Ich hoffe, der Aufruf in #3247 hilft Ihnen ein wenig, auch wenn ich verwirrt bin von dem, was wir mit dem Beispiel zeigen möchten.

wenn mich das verwirrt, was wir mit dem Beispiel zeigen wollen.

Was verwirrt Sie? Das Beispiel zeigt, wie eine Anwendung/ein Tool elektraMerge aufrufen soll, wenn kdbSet fehlschlägt.

@Chemin1 scheint die Liste doch nicht vollständig zu sein. Ich habe elektra_settings_backend_sync verpasst. Es hat das 3-Wege-Merging nicht verwendet (hauptsächlich, weil es C-Code ist und es nicht so einfach wäre, die alte Merging-API dort aufzurufen, aber das ist jetzt dank Ihnen kein Problem mehr), aber es hat eine TODO " Konfliktmanagement" gelöst werden. Ich habe es im Top-Post hinzugefügt.

Ich markiere diese Ausgabe als veraltet, da sie ein Jahr lang keine Aktivität hatte. Ich werde es in zwei Wochen schließen, wenn keine weiteren Aktivitäten auftreten. Wenn Sie möchten, dass es wieder aktiv ist, pingen Sie das Problem, indem Sie hier eine Nachricht schreiben, oder erstellen Sie mit dem Rest dieses Problems ein neues Problem.
Danke für eure Beiträge :sparkling_heart:

@Chemin1 Fortschritte? Es wäre wirklich toll für 1.0.0, den alten Merging-Code loszuwerden :sparkling_heart:

Tut mir leid, aber kein wirklicher Fortschritt. Leider habe ich seit Monaten keine Zeit für Nebenprojekte gefunden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

mpranj picture mpranj  ·  3Kommentare

sanssecours picture sanssecours  ·  3Kommentare

sanssecours picture sanssecours  ·  4Kommentare

mpranj picture mpranj  ·  3Kommentare

dmoisej picture dmoisej  ·  3Kommentare