GUI pro slučování podobných textových souborů

Re:GUI pro slučování podobných textových souborů
« Odpověď #15 kdy: 14. 09. 2021, 07:37:27 »
WinMerge asi najlepsi mergovaci tool aky som kedy videl.

V pipade ze si odkazany na widle tak hej...


Re:GUI pro slučování podobných textových souborů
« Odpověď #16 kdy: 14. 09. 2021, 09:11:03 »
Řešil jsem podobnou věc jako autor dotazu a další.

- porovnávání/mergování "po slovech" (konkrétně třeba values v .csv souboru)

- mít možnost u "třícestného merge" zapnout/vypnout zobrazení levého, středního, pravého sloupce (tj ukázat jen přidané věci, jen odebrané věci a jen změněné věci, s nějakým summary info, kolik toho je). Winmerge např. při diffování dvou adresářů nabídne toggle buttony "left only" "right only" "not equal only"... ale při diffování dvou souborů ne.

- semantické porovnávání u json/yaml - např. na pořadí atributů nezáleží (příp. ještě - a to už je vyšší dívčí - na pořadí prvků pole nezáleží, identifikují se např. pomocí id atributu; a to vše rekurzivně, zajímají mne i vnořené objekty a pole)

Vždy jsem toho nějak docílil s CLI (comm, diff, jq...) nebo stávajícími tooly (na ty jsony mi velmi často jenom je sesortovat a porovnat textově, ale ne vždy, někdy posloužil excel, ..), v nejhorším jsem si napsal skriptík v bash/pythonu, ale nějaký GUI tool, který by měl takovéto pokročilé vlastnosti, postrádám. Zkoušel jsem i různé online tooly a nebylo to úplně ono (nehledě na to, že někdy content může být potenciálně citlivý a nerad to odesílám na cizí server). Chci offline tool. "Mezera na trhu"?

Re:GUI pro slučování podobných textových souborů
« Odpověď #17 kdy: 15. 09. 2021, 10:19:45 »
SmartSynchronize (placený) umí i merge označeného textu, takže i po slovech.

Děkuji za tip. Vyzkoušel jsem v rámci zkušební doby zdarma.
Označený text to umí přiřadit doleva-doprava, čili zhruba to co bych potřeboval. Nicméně:
  • pro přijetí/odmítnutí změny je nutné označit text, pravé tlačítko myši, kliknout na správnou položku. Chtěl jsem ještě něco pohodlnějšího :-)
  • Špatně funguje undo/redo (nejen v tom režimu "po slovech")
  • Občas nejde pracovat s označením, ale je možnost jen "apply inner-line difference", tedy zase jen celý řádek..

Re:GUI pro slučování podobných textových souborů
« Odpověď #18 kdy: 15. 09. 2021, 10:39:35 »
SmartSynchronize (placený) umí i merge označeného textu, takže i po slovech.

Děkuji za tip. Vyzkoušel jsem v rámci zkušební doby zdarma.
Označený text to umí přiřadit doleva-doprava, čili zhruba to co bych potřeboval. Nicméně:
  • pro přijetí/odmítnutí změny je nutné označit text, pravé tlačítko myši, kliknout na správnou položku. Chtěl jsem ještě něco pohodlnějšího :-)
  • Špatně funguje undo/redo (nejen v tom režimu "po slovech")
  • Občas nejde pracovat s označením, ale je možnost jen "apply inner-line difference", tedy zase jen celý řádek..

Já bych uživateli nabídl řešení postavené nad tím vimem nebo mu napsal custom řešení. V případě, že změny jsou v obou souborech vždy na stejném tj. odpovídajícím řádku, by to nemělo být tak složité. Šipkama nahoru/dolu by se posouvalo mezi řádkama, šipkama doprava/doleva by se posouvalo mezi změnama a třeba ALT+R/ALT+L by uživatel akceptoval verzi vlevo nebo vpravo. Plus tlačítko na načtení souboru doleva, tlačítko načtení souboru doprava a tlačítko na uložení výsledného merge.

V implementaci by se při posunu na příslušný řádek tento rozdělil na více řádků po slovech a pak použil třeba tradiční diff algoritmus, nakonec by se řádek zase spojil zpět. Kontext porovnávání by tedy byl omezen na řádky stejného čísla v levém i v pravém souboru (první řádek vůči prvnímu, druhý řádek vůči druhému atd.). Možná to je trochu naivní představa a v praxi by měla nedokonalosti, ale princip by mohl sedět.

Kit

  • *****
  • 704
    • Zobrazit profil
    • E-mail
Re:GUI pro slučování podobných textových souborů
« Odpověď #19 kdy: 15. 09. 2021, 11:05:19 »
Vimdiff


Re:GUI pro slučování podobných textových souborů
« Odpověď #20 kdy: 15. 09. 2021, 17:09:20 »
"Mezera na trhu"?
Nový nástroj je samozřejmě možnost, jen mě zajímalo, zda již neexistuje něco co někdo používá / zná, ale co jsem nebyl schopen vyhledat.

Re:GUI pro slučování podobných textových souborů
« Odpověď #21 kdy: 15. 09. 2021, 17:11:28 »
WinMerge asi najlepsi mergovaci tool aky som kedy videl.
Zkoušel jsem s wine, tam mě zatím WinMerge nepřesvědčil. Možná mu dám ještě možnost s oprášeným virtualboxem.

Re:GUI pro slučování podobných textových souborů
« Odpověď #22 kdy: 15. 09. 2021, 17:52:39 »
Vimdiff
Nějaké tipy pro nastavení nebo používání, aby dělal to, co je popsáno v OP?
Ve výchozím nastavení nezobrazuje jednotlivé změny, ale skoro celý řádek.
Na to jsem našel plugin https://github.com/rickhowe/diffchar.vim, který to o něco vylepšuje, ale třeba řádek # komenář ... nevyhodnotí jako jednotlivou změnu a všechny řádky po něm už "rozhází"...

Re:GUI pro slučování podobných textových souborů
« Odpověď #23 kdy: 15. 09. 2021, 17:55:18 »
Nový nástroj je samozřejmě možnost, jen mě zajímalo, zda již neexistuje něco co někdo používá / zná, ale co jsem nebyl schopen vyhledat.
Přesto děkuji za podněty a nápady, možná se k nim časem dostanu

Re:GUI pro slučování podobných textových souborů
« Odpověď #24 kdy: 22. 09. 2021, 01:04:25 »
Tak jsem si nakonec vyrobil vlasntí udělátko, pro prohlížeč, přesně dle vlastních požadavků :-)
Kdyby to někoho zajímalo:
"webová aplikace"
demo gif

Re:GUI pro slučování podobných textových souborů
« Odpověď #25 kdy: 22. 09. 2021, 08:46:27 »
Hezké, jednoduché  :D

Re:GUI pro slučování podobných textových souborů
« Odpověď #26 kdy: 22. 09. 2021, 14:10:02 »
Moc pekne. Co takhle jeste spojit Accept/Reject s Nextem kvuli usetreni klikani?

Re:GUI pro slučování podobných textových souborů
« Odpověď #27 kdy: 23. 09. 2021, 10:59:52 »
Spojit Accept/Reject s Nextem by nebyl problém.

Lze ale použít klávesové zkratky (osobně mnohem více preferuji klávesové zkratky než klikání), takže spojení by zas tolik neušetřilo. Nyní se navíc po "next" označí, co se případně přijímá/odmítá.

Re:GUI pro slučování podobných textových souborů
« Odpověď #28 kdy: 23. 09. 2021, 18:02:46 »
Mám podobný provlém , akorát že těch souborů je 7. Mají 400 až 3000 řádků, někde záznam je tvořen 2 řádky ( komentář).


Soubory jsou jako vzasadě jako append , pokud se ručně nemění(což ale se děje kvuli drobnym upravam). Vetsinou jsou vzaté z nějakého předchozího  a tudiž některé nohou mít společnou historii . ale byly zkopirovany na ruzna zarizeni v ruzny cas a vyvijely se vlastnim zivoten (append a obcasne editace, korekkce) a je běžné že do stejná věc se mohla do  dostat do vice souboru (mozna v s.nejakou odchylkou)


Zaznam je vzdy dvojice radku, kdy prvni je comment a druhy samotny record. Ovsem pri vlozebi "stejneho zaznamu" se muze cast komentu mirne lisit. Dokonce se muze mirne lisit i samotny record .


Mohou tam být ručni odchylky ( odmazaný řadek veprostřed, zakomentovany ci upraveny)

Tool by byměl nějak schopn být umět znát syntaxi a "normalizovat řádky" (např. "/*" u jednoho ne ano , nebo část za nějakym znakem co se vyskytuje jen jednou)


Cílem je všechny soubory agregovat do jednoho.