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

GUI pro slučování podobných textových souborů
« kdy: 10. 09. 2021, 09:54:15 »
Mám dva podobné textové soubory, které se drobně liší, a potřebuji je sloučit.
Existuje nějaký grafický nástroj, kde by se snadno a rychle mohlo odkliknout, kterou změnu/rozdíl přijmout či odmítnout?
Ideálně ještě s možností snadné editace?
Na jednom řádku může být víc změn, cílem je mít možnost „odkliknout“ každou změnu zvlášť, „po slovech“ (tedy ne celý řádek).
Nástroj může být online nebo GUI (asi i TUI kdyby dobře fungoval). Kdyžtak ideálně multiplatformní.
Bylo by to pro obyčejné PC uživatele („BFU“).

Textové soubory jsou převážně souvislejší text, doplněný o různé značky, něco jako markdown. Obvykle velikosti vyšších desítek až stovek řádků.
Změny jsou důsledkem korektur, není předpoklad drastických rozdílů.

Zkoušel jsem různé GUI pro git, ty umí změny hezky zvýraznit a umožňují snadno pracovat s celými řádky.
Ale nenašel jsem nic, kde by se změny daly přijímat/odmítat „po slovech“.
Taktéž Libreoffice umožňuje "Edit->Track Changes->Compare document", ale dělení změn je příliš hrubé a nevyhovující (obvykle celé řádky).

Příklad:
soubor1.txt
Kód: [Vybrat]
lorem ipsum dolor sit amet,
consectetur adipisici elit,
sed eiusmod incidunt
ut labore et dolore aliqua

soubor2.txt
Kód: [Vybrat]
Lorem ipsum Dolor sit Amet,
# komenář komentář komentář
consectetur *adipisici* **elit**,
sed tempor incidunt
ut et dolore magna aliqua.

diff (zhruba nějak podobně si představuji zobrazení v GUI, jen barevné odlišení místo stylu písma):
Citace
loremLorem ipsum dolorDolor sit ametAmet,
# komenář komentář komentář
consectetur *adipisici* **elit**,
sed eiusmodtempor incidunt
ut labore et dolore magna aliqua.

vysledek.txt (požadovaný výsledek po editaci)
Kód: [Vybrat]
Lorem ipsum dolor sit amet,
# komenář komentář komentář
consectetur *adipisici* elit,
sed eiusmod tempor incidunt
ut labore et dolore magna aliqua.

Můj dosavadní přístup, pro zajímavost, kdyby se to někomu hodilo. Mě naprosto vyhovující, avšak nepřenositelný pro BFU:
změny vygeneruji příkazem
Kód: [Vybrat]
git diff --color-words='\w+|\S' soubor1.txt soubor2.txt > diff.txtSoubor diff.txt obsahuje ascii escape sekvence pro xterm barvy.
Otevřu v (g)vimu, mám vlastní plugin, který dle ascii escape znaků obarví změny a dále definuje klávesové zkratky pro skok na další změnu, přijetí změny a odmítnutí změny.
Pracuje se s tím velmi rychle a pohodlně.

Avšak pro BFU bych potřeboval něco „jednoduššího“.


Re:GUI pro slučování podobných textových souborů
« Odpověď #1 kdy: 10. 09. 2021, 09:59:36 »
Meld, dostupny v repozitarich, pripadne na flathubu.

https://ctrlv.cz/shots/2021/09/10/mqoy.png

Re:GUI pro slučování podobných textových souborů
« Odpověď #2 kdy: 10. 09. 2021, 12:50:26 »
Meld
Děkuji za tip.
Ve výchozím nastavení mi ale celý obsah souboru označuje jako jednu změnu. Lze nějak meld přimět, aby dělal rozdíly „po slovech“?

Re:GUI pro slučování podobných textových souborů
« Odpověď #3 kdy: 10. 09. 2021, 13:02:14 »
Pokud vidíte jako změnu celý soubor, je asi problém s koncem řádků nebo s bílýmy znaky. Nejlepší bude poslat ukázkové soubory.

Meld může ignorovat bílé znaky a rozdílné konce řádků, ale i když zobrazuje změny po slovech, tak IMHO provádí merge po řádcích. Jinak hledejte diff gui nebo diff and merge gui , možná že některé nástroje umí pracovat se slovy (což není v programování tak běžné, tam jde typicky minimálně o celé řádky).
« Poslední změna: 10. 09. 2021, 13:04:53 od Ondrej Nemecek »

Re:GUI pro slučování podobných textových souborů
« Odpověď #4 kdy: 10. 09. 2021, 14:10:41 »
Změny vidím zvýrazněné, tak jak bych si to představoval.
Ale sloučení se provede jako celek.
Přesně jako na obrázku od Ondřeje Kolína.
Ukázkové soubory jsou v OP, přikládám i přímo ke stažení.
https://drive.google.com/file/d/1PD2ViPi-NemPn_sQ3mzQZ62PeSpyTw0H/view?usp=sharing
https://drive.google.com/file/d/1_gFGEZ7p9JVGO8Osu35HYBBbHoZFUFEF/view?usp=sharing


_Jenda

  • *****
  • 1 601
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:GUI pro slučování podobných textových souborů
« Odpověď #5 kdy: 10. 09. 2021, 17:54:26 »
v kdiff3 jde udělat u každé změny split až na úroveň řádků, po slovech to bohužel neumí. A přešel jsem z něj na meld protože kdiff3 má matoucí GUI (je snadné přehlédnout nějakou malou změnu). Po slovech nevím že by něco umělo.

Re:GUI pro slučování podobných textových souborů
« Odpověď #6 kdy: 10. 09. 2021, 19:04:46 »
meld, kdiff3, kompare, diffuse - kazdy urobi zhruba rovnaku sluzbu, ktore pouzit je skor na preferenciach uzivatela. Ak ide o pc na ktorom su widle tak by som pozrel este na winmerge...

Re:GUI pro slučování podobných textových souborů
« Odpověď #7 kdy: 10. 09. 2021, 21:41:38 »
meld, kdiff3, kompare, diffuse - kazdy urobi zhruba rovnaku sluzbu, ktore pouzit je skor na preferenciach uzivatela. Ak ide o pc na ktorom su widle tak by som pozrel este na winmerge...

Chce merge po slovech...

Re:GUI pro slučování podobných textových souborů
« Odpověď #8 kdy: 10. 09. 2021, 23:00:32 »
Aha, takze asi chce nieco uplne ineho ako o com tu tocime.

Na to staci Libre office a v menu Subor -> Verzie...  Malymakky Slovo by to mal vediet tiez...

Vysledok:

https://i.imgur.com/yi5gQ01.png

Re:GUI pro slučování podobných textových souborů
« Odpověď #9 kdy: 11. 09. 2021, 11:52:40 »
Ano, hledám nástroj pro merge „po slovech“. Mít možnost rozhdnout každou nezávislou změnu zvlášť.
Nezávislá = oddělená nezměněným textem.
Například v OP v prvním řádku mít možnost nezávisle rozhodnout každé ze tří velkých/malých písmen.

S celými řádky samozřejmě není problém, tam toho existuje hodně.

Na to staci Libre office a v menu Subor -> Verzie...
Bohužel nestačí:
Taktéž Libreoffice umožňuje "Edit->Track Changes->Compare document", ale dělení změn je příliš hrubé a nevyhovující (obvykle celé řádky).

Re:GUI pro slučování podobných textových souborů
« Odpověď #10 kdy: 11. 09. 2021, 13:35:36 »
To chce asi zalovit ve vodách redakčního software - poptat překladatele, redaktory, korektory apod.

Nebo ten již existující postup s vimem obalit nějakým uživatelským zpřátelštěním, možná by to byl nejpřímočařejší postup.

Z hlediska programování IMHO jde jen o změnu tokenizéru - v diff algoritmu použít místo nového řádku bílé znaky. Trochu to komplikuje požadavek zobrazit texty obou verzí v původní podobě po řádcích, ale asi byl nebyl problém použít reference do původního textu. Samotného mne ale překvapilo, že všechny programátorské diff nástroje jedou striktně řádky (když obarvují i slova).

Re:GUI pro slučování podobných textových souborů
« Odpověď #11 kdy: 11. 09. 2021, 20:11:41 »
Samotného mne ale překvapilo, že všechny programátorské diff nástroje jedou striktně řádky (když obarvují i slova).

Pretoze by sa stavalo ze pri nevhodnom pojmenovani premennych, funkcii a pod v kombinacii s blbcom a typovo slabym jazykom, by vysledkom merge mohlo byt nieco ako:
Kód: [Vybrat]
auticka = jablcka + tehly;

Re:GUI pro slučování podobných textových souborů
« Odpověď #12 kdy: 11. 09. 2021, 21:54:10 »
Blbej merge uděláš i teď. IMHO proto existují pokusy o sémantický merge apod.

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

oss

  • ***
  • 245
    • Zobrazit profil
    • E-mail
Re:GUI pro slučování podobných textových souborů
« Odpověď #14 kdy: 14. 09. 2021, 07:25:05 »
WinMerge asi najlepsi mergovaci tool aky som kedy videl.