Libelektra: Integre a nova fusão de 3 vias nas ferramentas

Criado em 29 out. 2019  ·  17Comentários  ·  Fonte: ElektraInitiative/libelektra

As ferramentas devem ser corrigidas para usar a nova fusão

  • [] qt-gui (junto com @darddan)
  • [] elektrad (junto com @ raphi011)
  • [] método gsettings elektra_settings_backend_sync (junto com @mpranj)
  • [] importação kdb
  • [] editor kdb
  • [] shell kdb
  • [] montagem kdb
  • [] kconfig (https://github.com/ElektraInitiative/kconfig junto com @FelixResch)

Todos 17 comentários

Obrigado por comunicar este problema! Eu adicionei uma lista completa de todas as ferramentas acima.

Existe algum exemplo ou documentação de como fazer isso?

src/tools/kdb/cmerge.cpp é a única coisa próxima a um exemplo para isso

Eu concordo com @ raphi011 , definitivamente deveria haver um bom exemplo de como usar a API.

Eu adicionei "kconfig (https://github.com/ElektraInitiative/kconfig junto com @FelixResch)"

Um exemplo e um arquivo pkg-config realmente ajudariam a usar isso.

Eu concordo plenamente, @ raphi011 você pode adicionar este arquivo pkg-config porque você já sabe como fazê-lo e @ Chemin1 levaria algum tempo para aprender sobre isso.

Exemplos que você tem em # 3235 e # 3236

Exemplos que você tem em # 3235 e # 3236

Na verdade, # 3235 ainda não tem uma chamada para elektraMerge . Não tenho certeza de como implementar a mesclagem aqui ainda, mas vou dar uma olhada nisso o mais rápido possível.

Em contraste, 3222 tem um.

src / tools / kdb / cmerge.cpp é a única coisa próxima a um exemplo para isso

"perto de" pode ter sido enganoso. cmerge.cpp é um exemplo.

levaria muito tempo para @ Chemin1 aprender sobre isso.

@ raphi011 Obrigado por # 3241! @ markus2330 está certo, nunca fiz isso antes e não tenho ideia de como funciona.

@darddan , @FelixResch seria ótimo se você pudesse dar uma olhada nesses exemplos também.

@ Chemin1 Acho que todos esses exemplos não são exatamente o que o kconfig ou elektrad precisam. O que eles precisam é algo parecido com o que acontece no qt-gui.

Na verdade, você poderia corrigir examples / kdbset.c para chamar sua API. Isso é exatamente o que o kconfig / elektrad precisa. (A propósito, o userInput seria simplesmente passado para o parâmetro de estratégia de elektraMerge. A parte com "problemKey" agora é irrelevante, você pode removê-la.).

Desculpe por não apontar anteriormente que example / kdbset.c existe. Talvez este exemplo até substitua a necessidade de um tutorial extra. De alguma forma, precisamos tornar este exemplo mais proeminente: Ex: link do tutorial de mesclagem e inclua na documentação do kdbSet. @ Chemin1 você pode fazer isso?

@ Chemin1 Acho que todos esses exemplos não são exatamente o que o kconfig ou elektrad precisam. O que eles precisam é algo parecido com o que acontece no qt-gui.

Isso seria muito útil. BTW: qual é a estratégia esperada que elektrad deve usar para a fusão? ours ?

elektrad, como qt-gui, idealmente escalona para o usuário e pergunta a ele como proceder.

Acho que você vai precisar de algum ponto de extremidade de mesclagem e pode enviar o que o usuário deseja como parâmetro.

Basicamente, algo assim precisa ser feito:

  1. Se algum dos endpoints falhar com um conflito (só pode acontecer para o "não-get"), o usuário obtém um pop-up que diz que alguém modificou externamente o KDB
  2. o usuário escolhe uma das estratégias, por enquanto a nossa e deles é suficiente
  3. quando o usuário confirma, / kdbMerge (ou nome semelhante) é chamado, aqui um código como em examples / kdbset.c é executado (também uma ligação go para isso será necessária, ou talvez até melhor diretamente para a biblioteca de mesclagem)

Acho que todos esses exemplos não são exatamente o que o kconfig ou elektrad precisam. O que eles precisam é algo parecido com o que acontece no qt-gui.

Hmm ok. Vou dar uma olhada em qt-gui.

@ raphi011 Espero que a ligação # 3247 ajude você um pouco, mesmo que eu esteja confuso com o que queremos mostrar com o exemplo.

se estou confuso com o que queremos mostrar com o exemplo.

Sobre o que você está confuso? O exemplo mostra como um aplicativo / ferramenta deve chamar elektraMerge quando o kdbSet falha.

@ Chemin1 parece que a lista não estava completa, afinal. Perdi elektra_settings_backend_sync. Ele não usava a fusão de 3 vias (principalmente porque é código C e não seria tão fácil chamar a API de fusão antiga lá, mas isso agora, graças a você, não é mais um problema), mas tem um TODO " gestão de conflitos "a serem resolvidos. Eu adicionei na postagem superior.

Eu marquei este problema como obsoleto, pois ele não teve nenhuma atividade por um ano. Vou fechá-lo em duas semanas se não houver mais atividades. Se quiser que ele esteja ativo novamente, execute ping no problema escrevendo uma mensagem aqui ou crie um novo problema com o restante deste problema.
Obrigado por suas contribuições: sparkling_heart:

@ Chemin1 algum progresso? Seria ótimo para 1.0.0 se livrar do antigo código de mesclagem: sparkling_heart:

Sinto muito, mas nenhum progresso real. Não encontro tempo para fazer nenhum projeto paralelo há meses, infelizmente.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

markus2330 picture markus2330  ·  4Comentários

e1528532 picture e1528532  ·  4Comentários

mpranj picture mpranj  ·  3Comentários

sanssecours picture sanssecours  ·  3Comentários

dominicjaeger picture dominicjaeger  ·  3Comentários