Pravna zaščita © 2002-2007 Joachim Eibl
Pravna zaščita © 2017-2019 Michael Reeves
KDiff3 je orodje za razlikovanje in spajanje datotek in map, ki
primerja in združuje dve ali tri datoteke ali mape za vnos besedil,
prikazuje razlike vrstico po vrstici in znak po znaku (!),
zagotavlja samodejno zlivanje,
ima urejevalnik za udobno reševanje sporov zlivanja,
zagotavlja preglednost omrežja prek KIO,
ima možnosti za označevanje ali skrivanje sprememb v belem prostoru ali komentarjih,
podpira Unicode, UTF-8 in druga kodiranja datotek,
natisne razlike,
podpira združevanje ključnih besed in zgodovine nadzora različic.
Ta dokument opisuje KDiff3-različico 1.12.
Kazalo
- 1. Uvod
- 2. Primerjava in zlivanje datotek
- 3. Primerjava map in združevanje s KDiff3
- 4. Razne teme
- 5. Vprašanja in odgovori
- 6. Zasluge in licenca
Obstaja več grafičnih orodij za razlikovanje. Zakaj izbrati KDiff3? Naj povem, zakaj sem ga napisal.
KDiff3 se je začel, ker sem moral opraviti težko zlivanje. Zlivanje je potrebno, kadar več ljudi dela na istih datotekah v projektu. Zlivanje je lahko nekoliko avtomatizirano, ko ima orodje za spajanje ne le nove spremenjene datoteke (imenovane "veje"), temveč tudi izvirno datoteko (imenovano "osnova"). Orodje za zlivanje bo samodejno izbralo vse spremembe, ki so bile izvedene samo v eni veji. Ko več sodelujočih spremeni iste vrstice, potem orodje za spajanje zazna konflikt, ki ga je treba rešiti ročno.
Zlivanje je bilo takrat težko, ker je en sodelujoči spremenil marsikaj in popravil zamik na mnogih mestih. Drugi sodelavec je prav tako spremenil veliko besedila v isti datoteki, kar je povzročilo več sporov pri zlivanju.
Orodje, ki sem ga takrat uporabil, je pokazalo samo spremenjene vrstice, ne pa tudi tega, kar se je spremenilo v teh vrsticah. In ni bilo nobenih informacij o tem, kje je bila spremenjen le zamik. Zlivanje je bilo majhna nočna mora.
To je bil torej začetek. Prva različica je lahko pokazala razlike znotraj vrstice in je pokazala razlike v praznem prostoru. Kasneje so bile dodane številne druge funkcije za povečanje uporabnosti.
Na primer, če želite hitro primerjati nekaj besedila, ga lahko kopirate v odložišče in prilepite v katero koli okno diff.
Funkcija, ki je zahtevala veliko truda, je primerjava in zlivanje map, ki je program spremenila skoraj v popoln brskalnik datotek.
Upam, da KDiff3 deluje tudi za vas. Uživajte!
Joachim Eibl (2003)
Ta posnetek zaslona prikazuje razliko med dvema besedilnima datotekama (z uporabo zgodnje različice KDiff3):

3-smerno zlivanje je v celoti podprto. To je uporabno, če dve osebi neodvisno spreminjata kodo. Izvirna datoteka (osnova) se uporablja za pomoč KDiff3 za samodejno izbiro pravilnih sprememb. Urejevalnik zlivanja pod oknidiff vam omogoča reševanje sporov, hkrati pa vam prikazuje rezultat, ki ga boste dobili. Izpis lahko celo urejate. Ta posnetek zaslona prikazuje zlivanje treh vhodnih datotek:

KDiff3 pomaga tudi pri primerjavi in zlivanju celotnih map. Ta posnetek zaslona prikazuje KDiff3 med zlivanjem map:

Z uporabo možnosti grafičnega barvnega prikaza KDiff3 točno pokaže v čem je razlika. Ko boste morali opraviti veliko pregledov kode, vam bo to všeč.

Presledki in zavihki, ki se razlikujejo, so vidni. Ko se vrstice razlikujejo le po količini praznega prostora, je to mogoče videti v enem samem pogledu v stolpcu s povzetkom na levi strani. (Nič več skrbi, ko ljudje spremenijo zamik.)

Analizirajte tri datoteke in ugotovite, kje se razlikujejo.
Levo/srednje/desno okno se imenuje A/B/C in ima barvo modro/zeleno/magenta.
Če je ena datoteka v vrstici enaka in ena drugačna, potem barva prikazuje, katera datoteka je drugačna. Rdeča barva pomeni, da sta obe drugi datoteki različni.

KDiff3 se lahko uporablja za združevanje dveh ali treh vhodnih datotek in samodejno zlije čim več. Rezultat je predstavljen v oknu, ki ga je mogoče urejati, kjer je večino konfliktov mogoče rešiti z enim samim klikom miške: izberite ustrezne gumbe pri A/ B/C za izbiro vira, ki naj bo uporabljen. Izberete lahko tudi več kot en vir. Ker je to izhodno okno urejevalnik, lahko tudi konflikte, ki potrebujejo nadaljnje popravke, rešite tukaj, ne da bi potrebovali drugo orodje.
Hitra navigacija prek gumbov.
Klik z miško na stolpec s povzetkom sinhronizira vsa okna, da prikažejo isti položaj.
Izberite in kopirajte iz katerega koli okna ter prilepite v okno z rezultati zlivanja.
Pregledni stolpec, ki prikazuje, kje so spremembe in koflikti.
Barve so prilagodljive vašim preferencam.
Nastavljiva velikost zavihka.
Možnost vstavljanja presledkov namesto tabulatorjev.
Udobno odprite datoteke prek pogovornega okna ali jih določite v ukazni vrstici.
Poiščite nize v vseh besedilnih oknih z → (Ctrl+F) in → (F3) menijske elemente.
Pokaže številke vrstic za vsako vrstico.
Prilepi odložišče ali povleče besedilo v okno vnosa razlike.
Preglednost omrežja prek KIO.
Lahko se uporablja kot pregledovalnik razlik iz KDevelop 3.
Prelom besed za dolge vrstice.
Podpora za Unicode, UTF-8 in druge kodeke.
Podpora za jezike od desne proti levi.
...
kdiff3datoteka1 datoteka2 datoteka3-m kdiff3datoteka1 datoteka2 datoteka3-oizhodnadatoteka
Upoštevajte, da bo datoteka1 obravnavana kot osnova datoteka2 in datoteka3.
Če imajo vse datoteke enako ime, vendar so v različnih mapah, lahko zmanjšate tipkanje tako, da določite ime datoteke samo za prvo datoteko, npr.:
kdiff3 mapa1/imedatoteke mapa2 mapa3
To je zelo podobno, vendar gre zdaj za mape.
kdiff3folder1 folder2kdiff3folder1 folder2-odestdirkdiff3folder1 folder2 folder3kdiff3folder1 folder2 folder3-odestdir
Za primerjavo in združevanje map lahko nadaljujete z branjem tukaj.
Če želite videti vse razpoložljive možnosti ukazne vrstice, vnesite
kdiff3 --help
Primer izhoda:
Options: -m, --merge Zlij input. -b, --base file Eksplicitna datoteka osnova. Zaradi združjivosti z določenimi orodji. -o, --output file Output datoteka. Pomeni -m. Npr.: -o newfile.txt --out file Spet output datoteka. (Zaradi združjivosti z določenimi orodji.) --noauto Prezri --auto in vedno pokaži uporabniški vmesnik. --auto Brez grafičnega vmesnika, če so vsi konflikti samodejno rešljivi. (Potrebuje -o datoteka) --L1 alias1 Vidna zamenjava imena za vhodno datoteko 1 (osnova). --L2 alias2 Vidna zamenjava imena za vhodno datoteko 2. --L3 alias3 Vidna zamenjava imena za vhodno datoteko 3. -L, --fname alias Alternativna vidna zamenjava imena. Ena omemba za vsak input. --cs string Preglasi nastavitev config. Uporaba enkratno za vsako nastavitev. npr.: --cs "AutoAdvance=1" --confighelp Prikaži seznam nastavitev konfiguracije in trenutne vrednosti. --config file Uporabi drugo datoteko config.
Možnost --cs vam omogoča prilagoditev konfiguracijske vrednosti, ki je sicer nastavljiva samo prek konfiguracijskih pogovornih oken. Vendar se zavedajte, da ko se KDiff3 nato prekine, bo spremenjena vrednost shranjena skupaj z drugimi nastavitvami. Z --confighelp lahko izveste imena razpoložljivih elementov in trenutne vrednosti.
Z --config lahko določite drugo konfiguracijsko datoteko. Ko pogosto uporabljate KDiff3 s popolnoma različnimi nastavitvami vam to omogoča enostavno preklapljanje med njimi.
Veliko ljudi želi uporabljati KDiff3 z nekim sistemom za nadzor različic. Ko pa sistem za nadzor različic pokliče KDiff3 z uporabo parametrov ukazne vrstice, ki KDiff3 ne prepozna, se potem KDiff3 zaključi z napako. Element Integracija v pogovornem oknu z nastavitvami omogoča podajanje parametrov ukazne vrstice, ki naj jih KDiff3 prezre. Prikazali se bodo v pomoči za uporabo, kot v tem primeru:
--foo Prezrto. (Uporabnik definiran.)
- Možnosti ukazne vrstice, ki jih je treba prezreti:
Seznam možnosti, ločenih s podpičjem ';'. Ko se ena od teh možnosti prikaže v ukazni vrstici, potem ga bo KDiff3 prezrl in zagnal brez poročanja o napaki. (Privzeto je "
u;query;html;abort").
Ko to ni dovolj, je priporočljivo napisati skript lupine, ki prevede to možnost.
Ker mora biti možno izbirati veliko vhodnih datotek, ima program posebno pogovorno okno za odpiranje:

Pogovorno okno za odpiranje vam omogoča ročno urejanje imen datotek, izbiro datoteke v brskalniku datotek prek gumba ali vam omogoča izbiro nedavnih datotek s spustnih seznamov. Če znova odprete pogovorno okno, bodo trenutna imena še vedno tam. Tretja vhodna datoteka ni potrebna. Če vnos za C ostane prazen, bo opravljena le analiza razlike v dveh datotekah.
Prav tako lahko izberete mapo z gumbom . Če je za A podana mapa, se začne primerjava /združevanje map. Če A določa datoteko, vendar B, C ali izhod določa mapo, potem KDiff3 uporablja ime datoteke iz A v navedenih mapah.
Če je izbrano potrditveno polje Združi, postane vrstica Izhod možna za urejanje. Vendar ni treba takoj določiti imena izhodne datoteke. To lahko tudi odložite do shranjevanja.
Gumb odpre pogovorno okno z nastavitvami, tako da lahko nastavite možnosti, preden zaženete analizo.
Včasih želite primerjati dele besedila, ki ni lastna datoteka. KDiff3 omogoča tudi lepljenje besedila iz odložišča v okno za vnos razlike, ki ima fokus. Analiza diff se zgodi takoj. V odprtem pogovornem oknu vam takrat ni treba določiti datotek, ampak ga samo zaprete z gumbom .
Uporabite lahko tudi povleci in spusti: povlecite datoteko iz upravljalnika datotek ali izbrano besedilo iz urejevalnika in ga spustite v okno za vnos razlike.
Kaj je ideja? Včasih datoteka vsebuje dve podobni funkciji, vendar je preverjanje, kako podobni sta v resnici, velik napor, če morate najprej ustvariti dve datoteki in ju nato naložiti. Zdaj lahko preprosto kopirate, prilepite in primerjate ustrezne razdelke.
Opomba
Trenutno ne morete vleči ničesar iz KDiff3. Podprto je samo spuščanje vnosa razlike.
Pozor
Nekateri urejevalniki si še vedno razlagajo tehniko povleci in spusti v drug program kot izreži (namesto kopiraj) in prilepi. Vaši izvirni podatki bodo takrat morda izgubljeni.

Na vrhu vsakega besedilnega okna je njegova "vrstica informacij". Vrstice informacij vnosnih oken vsebujejo črko A, B ali C, ime datoteke, ki ga je mogoče urejati, gumb za brskanje in številko vrstice prve vidne vrstice v oknu. (Upoštevajte, da okno C ni obvezno.) Vsaka informacijska vrstica je prikazana v drugi barvi.
Ko izberete drugo datoteko z brskanjem ali dokončate urejanje imena datoteke tukaj s pritiskom na Enter, se bo nova datoteka naložila in primerjala z že naloženimi datotekami.
Trem vnosnim oknom so dodeljene črke A, B in C. A ima modro barvo, B zeleno in C škrlatno. (To so privzete vrednosti, vendar jih lahko spremenite v elementu Barva v pogovornem oknu z nastavitvami.)
Ko je zaznana razlika, barva pokaže, katera vhodna datoteka se razlikuje. Če se obe drugi vhodni datoteki razlikujeta, je barva uporabljena za izražanje tega, privzeto rdeča (možnost Barva spora v elementu Barva v pogovornem oknu z nastavitvami). Ta barvna shema je še posebej uporabna v primeru treh vhodnih datotek, kar bo prikazano v naslednjem razdelku (Zlivanje).
Levo od vsakega besedila je stolpec "povzetek". Če so se v vrstici pojavile razlike, bo stolpec s povzetkom prikazal ustrezno barvo. Za razliko v presledku je povzetek označen. Za programske jezike, kjer prazen prostor ni tako pomemben, je to koristno, da na en pogled vidite, ali je bilo kaj pomembnega spremenjeno. (V C/C++ je prazen prostor zanimiv le znotraj nizov, komentarjev, za predprocesor in v nekaterih le zelo ezoteričnih situacijah.)
Navpična črta, ki ločuje stolpec s povzetkom in besedilo, je prekinjena, če vhodna datoteka tam ni imela vrstic. Ko je prelom besed omogočen, je ta navpična črta prikazana s pikami za prelite vrstice.
Na desni strani je levo od navpičnega drsnika viden stolpec »pregled«. Prikazuje stisnjen stolpec povzetka vnosa A. Vse razlike in konflikti so vidni na en pogled. Ko sta uporabljeni samo dve vnosni okni, so vse razlike tukaj rdeče, ker je vsaka razlika tudi konflikt. Črn pravokotnik uokvirja vidni del vnosov. Pri zelo dolgih vhodnih datotekah, ko je število vhodnih vrstic večje od višine preglednega stolpca v slikovnih pikah, si več vhodnih vrstic deli eno pregledno vrstico. Konflikt ima potem glavno prednost pred preprostimi razlikami, ki imajo prednost pred nespremembami, tako da se tu ne izgubi nobena razlika ali konflikt. S klikom na ta pregledni stolpec se prikaže ustrezno besedilo.
Včasih algoritem postavi napačne vrstice eno poleg druge. Ali pa želite primerjati en del besedila z besedilom na povsem drugem mestu v drugi datoteki. Za te situacije lahko ročno naročite KDiff3 za poravnavo določenih vrstic. Z miško označite besedilo, za katerega želite izboljšati poravnavo, kot bi to naredili za kopiranje in lepljenje v prvem pogledu diff, nato pa izberite → element menija (Ctrl+Y). V stolpcu s povzetkom se poleg izbranega besedila prikaže oranžna vrstica. To ponovite za drugi in (če je na voljo) tretji pogled razlike. KDiff3 bo takoj znova izračunal razlike vsakič, ko boste to storili, in bo poravnal izbrane črte. Seveda se nekatere od prej ujemajočih se vmesnih vrstic morda ne bodo več ujemale.
Trenutno zlivanje ne podpira uporabe pomoči za ročno razlikovanje.
V nekaterih primerih KDiff3 bo videl preveč ali premalo razlik za združevanje. V tem primeru lahko združite ali razdelite obstoječe razdelke.
Dodajte nove razdelke tako, da najprej izberete besedilo v vrsticah, ki sodijo skupaj v katerem koli oknu za vnos (kot pri kopiranju v odložišče). Nato izberite menijski element → . Razdeli bodo dodani nad prvo vrstico in pod zadnjo vrstico izbranega besedila. Če želite dodati samo en razdelek, izberite besedilo, ki se začne pri drugem razdelku razdelka.
Za združevanje odsekov v katerem koli vnosnem oknu izberite nekaj v vrsticah iz odsekov, ki jih želite zliti skupaj. (Lahko tudi združite več razdelkov v enem koraku.) Nato izberite menijski element → .

Okno urejevalnika zlitih izhodov (pod okni za vnos razlike) ima na vrhu tudi informacijsko vrstico, ki prikazuje Izhod:, ime datoteke in oznako [Modified], če ste nekaj uredili. Običajno bo vseboval nekaj besedila prek možnosti samodejnega združevanja, pogosto pa bo vseboval tudi spore.
!!! Shranjevanje je onemogočeno, dokler niso razrešeni vsi konflikti !!! (Uporabite gumb , da poiščete preostale spore.)
Pri samo dveh vhodnih datotekah je vsaka razlika tudi konflikt, ki ga je treba rešiti ročno.
Pri treh vhodnih datotekah se prva datoteka obravnava kot osnovna, medtem ko druga in tretja vhodna datoteka vsebujeta spremembe. Če se v kateri koli vrstici spremeni samo vhod B ali vhod C, vendar ne oba, bo spremenjeni vir samodejno izbran. Samo ko sta B in C spremenjena v istih vrsticah, orodje zazna konflikt, ki ga je treba rešiti ročno. Če sta B in C enaka, vendar ne enaka A, je izbran C.
Okno urejevalnika zlitih izhodov ima na levi tudi stolpec s povzetkom. Prikazuje črko vnosa, iz katerega je bila izbrana vrstica, ali nič, če so vsi trije viri enaki v vrstici. Za spore prikaže vprašaj "?" in vrstica prikazuje "<Konflikt združevanja>", vse rdeče. Ker bi reševanje konfliktov vrstico za vrstico trajalo zelo dolgo, so vrstice združene v skupine, ki imajo enake razlike in značilnosti konflikta. Toda konflikti samo-belega-prostora so ločeni od sporov, ki niso-belega-prostora, da bi olajšali združevanje datotek, če se je zamik spremenil za veliko vrstic.
Ko kliknete na stolpec s povzetkom z mouse button v katerem koli oknu, bo začetek skupine, ki pripada tej vrstici, prikazan v vseh oknih. Ta skupina nato postane "Trenutna skupina". Označeno je z možnostjo Barva ozadja razlike v trenutnem območju elementa Integracija v pogovornem oknu z nastavitvami, na levi strani besedila pa se prikaže črna vrstica.
Vrstica z gumbi pod menijsko vrstico vsebuje tri gumbe za izbiro vnosa, ki vsebujejo črke A, B in C. Kliknite gumb za izbiro vnosa, da vstavite (ali odstranite, če so že vstavljene) vrstice iz ustreznega vira. Če želite izbrati vrstice iz več vnosov, kliknite ustrezne gumbe v želenem vrstnem redu. Na primer, če želite, da se vrstice iz B prikažejo pred vrsticami iz A v izpisu, najprej kliknite B, nato A .
Če uporabljate gumb (glejte razdelek Samodejno napredovanje), to onemogočite, preden izberete vrstice iz več vnose ali če želite urediti vrstice po vaši izbiri. V nasprotnem primeru KDiff3 bo po izbiri prvega vnosa skočil na naslednji konflikt.
Pogosto je koristno neposredno urediti zliti izhod. Stolpec s povzetkom bo pokazal "m" za vsako vrstico, ki je bila ročno spremenjena. Ko so na primer razlike poravnane tako, da preprosto izbiranje vnosov ne bo zadovoljivo, potem lahko označite potrebno besedilo in uporabite običajno kopiraj in prilepi, da ga vstavite v izhod zlivanja.
Včasih, ko je vrstica odstranjena s samodejnim zlivanjem ali urejanjem in v tej skupini ne ostane nobena druga vrstica, se besedilo <Brez izvorne vrstice> se prikaže v tej vrstici. To je samo nadomestni znak za skupino, ko si morda premislite in znova izberete vir. To besedilo ne bo prikazano v shranjeni datoteki ali v nobenem izboru, ki ga želite kopirati in prilepiti.
Besedilo "<Conflikt zlivanja>" se prikaže v odložišču, če kopirate in prilepite besedilo, ki vsebuje takšno vrstico. Vendar bodite pri tem previdni.
Običajno združevanje se bo začelo s samodejnim reševanjem preprostih sporov. Toda meni ponuja nekaj dejanj za druge pogoste potrebe. Če morate za večino sporov izbrati isti vir, potem lahko povsod izberete A, B ali C ali samo za preostale nerešene konflikte ali za nerešene konflikte praznega prostora. Če želite sami določiti vsako posamezno delto, lahko . Ali če se želite vrniti na samodejne izbire KDiff3 nato izberite . KDiff3 nato znova zažene združevanje. Za dejanja, ki spremenijo vaše prejšnje spremembe KDiff3 bo pred nadaljevanjem zahteval vašo potrditev.
Opomba
Pri izbiri katerega koli vira za nerešene konflikte praznega prostora in možnosti Prezri številke (obravnavaj kot presledek) ali Prezri komentarje C/C++ (obravnavaj kot presledek) na Diff v pogovornem oknu z nastavitvami se uporabijo, potem bodo spremembe v številkah ali komentarjih prav tako obravnavane kot prazen prostor.
Mnogi sistemi za nadzor različic podpirajo posebne ključne besede v datoteki. (npr. "$Datum$", "$Glava$", "$Avtor$", "$Dnevnik$", itd.) Med prijavo sistem za nadzor različic (VCS) spremeni te vrstice. Na primer "$Datum$" se bo spremenil v "$Datum: 2005/03/22 18:45:01 $". Ker bo ta vrstica v vsaki različici datoteke drugačna, bo med združevanjem zahtevala ročno interakcijo.
KDiff3 ponuja samodejno združevanje za te elemente pri elementu Združi v pogovornem oknu z nastavitvami. Za preproste vrstice, ki se ujemajo z možnostjo Samodejno združevanje regularnega izraza v vseh vhodnih datotekah KDiff3 bo izbral vrstico iz B ali - če je na voljo - iz C. (Poleg tega je potrebno, da se zadevne vrstice pri primerjavi ujemajo in da prejšnja vrstica ne vsebuje spora.) To samodejno združevanje je mogoče zagnati takoj po začetku združevanja (aktivirajte možnost Zaženi samodejno združevanje regularnega izraza ob združevanju zagon) ali pozneje prek menijske postavke → .
Podprto je tudi samodejno združevanje za zgodovino nadzora različic (imenovano tudi "dnevnik"). Samodejno združevanje zgodovine se lahko zažene takoj, ko se združevanje začne, tako da aktivirate možnost Združi zgodovino nadzora različic ob začetku združevanja pri elementu Združi v pogovornem oknu z nastavitvami ali pozneje prek → menijski element.
Običajno se zgodovina nadzora različic začne z vrstico, ki vsebuje ključno besedo "$Log$". To se mora ujemati z možnostjo Regularni izraz za začetek zgodovine:. KDiff3 zazna, katere naslednje vrstice so v zgodovini, tako da analizira glavne znake, ki so bili pred ključno besedo "$Log$". Če se v naslednjih vrsticah pojavijo isti znaki "vodilnega komentarja", so prav tako vključeni v zgodovino.
Med vsako prijavo VCS zapiše edinstveno vrstico, ki določa podatke o različici, datumu in času, ki jim sledijo vrstice s komentarji uporabnikov. Te vrstice tvorijo en vnos zgodovine. Ta razdelek z zgodovino se poveča z vsako prijavo in najnovejši vnosi so prikazani na vrhu (za začetno vrstico zgodovine).
Ko za vzporedni razvoj dva ali več razvijalcev prijavi vejo datoteke, bo zgodovina združevanja vsebovala več vnosov, ki se med združevanjem vej prikažejo kot spori. Ker lahko njihovo združevanje postane zelo dolgočasno, KDiff3 ponuja podporo z dvema možnima strategijama: samo vstavite podatke o zgodovini obeh sodelavcev na vrh ali razvrstite informacije o zgodovini po uporabniško določenem ključu.
Metodo samo vstavi vse vnose je lažje konfigurirati. KDiff3 potrebuje le metodo za odkrivanje, katere vrstice pripadajo enemu vnosu v zgodovino. Večina VCS vstavi prazno vrstico za vsakim vnosom v zgodovino. Če ni drugih praznih vrstic, je to zadosten kriterij za KDiff3. Samo nastavite prazen regularni izraz za začetek vnosa v zgodovino pri elementu Spoji v pogovornem oknu z nastavitvami. Če kriterij prazne vrstice ne zadostuje, lahko podate regularni izraz za zaznavanje začetka vnosa v zgodovino.
Upoštevajte, da bo KDiff3 odstranil podvojene vnose v zgodovino. Če se zgodovinski vnos pojavi večkrat v zgodovini vhodne datoteke, bo v izhodu ostal samo en vnos.
Če želite razvrstiti zgodovino, morate določiti, kako naj bo ključ za razvrščanje zgrajen. Uporabite oklepaje v Začetek regularnega izraza v zgodovini pri elementu Spoji v pogovornem oknu z nastavitvami, da združite dele regularnega izraza, ki naj se pozneje uporabijo za ključ za razvrščanje. Nato določite možnost Začetek vrstnega reda razvrščanja vnosa v zgodovino z navedbo z vejico "," ločenega seznama številk, ki se nanašajo na položaj skupine v regularnem izrazu.
Ker tega ni tako enostavno narediti takoj, lahko preizkusite in izboljšate regularne izraze in generiranje ključev v namenskem pogovornem oknu s pritiskom na gumb .
Primer: Predpostavimo, da je zgodovina videti takole:
/************************************************************************** ** HISTORY: $Log: \toms_merge_main_view\MyApplication\src\complexalgorithm.cpp $ ** ** \main\integration_branch_12 2 Apr 2001 10:45:41 tom ** Merged branch simon_branch_15. ** ** \main\henry_bugfix_branch_7\1 30 Mar 2001 19:22:05 henry ** Improved the speed for subroutine convertToMesh(). ** Fixed crash. **************************************************************************/
Začetna vrstica zgodovine se ujema z regularnim izrazom ".*\$Log.*\$.*". Nato sledi vnosom v zgodovino.
Vrstica s ključno besedo »$Log$« se začne z dvema »*«, ki jima sledi presledek. KDiff3 uporablja prvi niz brez presledka kot "uvodni komentar" in predpostavlja, da se zgodovina konča v prvi vrstici brez tega uvodnega komentarja. V tem primeru se zadnja vrstica konča z nizom, ki se prav tako začne z dvema "*", vendar namesto presledka sledi več "*". Zato ta vrstica konča zgodovino.
Če razvrščanje zgodovine ni potrebno, bi lahko regularni izraz začetne vrstice vnosa zgodovine izgledal takole. (Ta vrstica je razdeljena na dva dela, ker drugače ne bi ustrezala.)
\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
Za podrobnosti o regularnih izrazih glejte dokumentacijo o regularnih izrazih. Upoštevajte, da se "\s" (z malimi črkami "s") ujema s katerim koli presledkom in "\S" (z velikimi črkami "S") se ujema s katerim koli ne-belim prostorom. V našem primeru začetek vnosa zgodovine vsebuje najprej informacije o različici z reg. exp. "\\main\\\S+, datum, sestavljen iz dneva "[0-9]+", meseca "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" in leto "[0-9][0-9][0-9][ 0-9]", čas "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" in končno prijavno ime razvijalca ".*".
Upoštevajte, da bodo znaki "uvodnega komentarja" (v primeru "**") že odstranjeni s KDiff3 pred poskusom ujemanja, se zato regularni izraz začne z ujemanjem za nobenega ali več znakov belega prostora"\s*". Ker se znaki komentarjev lahko razlikujejo v vsaki datoteki (npr. C/C++ uporablja druge znake komentarjev kot skript Perl), KDiff3 skrbi za glavne znake komentarjev in jih ne bi smeli podajati v regularnem izrazu.
Če potrebujete urejeno zgodovino. Nato je treba izračunati sortkey. Za to morajo biti ustrezni deli v regularnem izrazu združeni v oklepaje. (Dodatni oklepaji lahko tudi ostanejo, če je razvrščanje zgodovine onemogočeno.)
\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
Oklepaji zdaj vsebujejo 1. informacije o različici, 2. dan, 3. mesec, 4. leto, 5. čas, 6. ime. Če pa želimo razvrščati po datumu in času, moramo sestaviti ključ z elementi v drugačnem vrstnem redu: najprej leto, sledijo mesec, dan, čas, informacije o različici in ime. Zato je vrstni red ključev za razvrščanje, ki ga je treba določiti, "4,3,2,5,1,6".
Ker imena mesecev niso dobra za razvrščanje ("Apr" bi bil prvi) KDiff3 zazna, v katerem vrstnem redu so bila navedena imena mesecev, in namesto tega uporabi to številko ("Apr" -> "04"). In če je najdeno čisto število, bo pretvorjeno v 4-mestno vrednost z začetnimi ničlami za razvrščanje. Končno bo dobljeni ključ za razvrščanje za prvo začetno vrstico vnosa v zgodovino:
2001 04 0002 10:45:41 integracija_veja_12 tom
Za več informacij glejte tudi razdelek Nastavitve združevanja.
Večino navigacije boste opravili z drsniki in miško, vendar lahko krmarite tudi s tipkami. Če kliknete katero koli okno, lahko uporabite bližnjice Levo, Desno, Gor, Dol, PgUp, PgDn, Home, End, Ctrl+Home in Ctrl+End kot bi v drugih programih. Pregledni stolpec polegnavpičnega drsnika vhodnih datotek lahko uporabite tudi za navigacijo s klikom vanjo.
Uporabite lahko tudi miške za pomikanje navzgor in navzdol.
V urejevalniku spajanja izhodov lahko za urejanje uporabite tudi druge tipke. Lahko preklapljate med načinoma vstavljanja in prepisovanja s tipko Ins. (Privzete jenačin vstavljanja.)
Klik z mouse button v kateri koli stolpec povzetka bo sinhroniziral vsa oknaza prikaz začetka iste skupine vrstic (kot je razloženo v razdelkuNastavitev trenutne skupine insinhroniziranje položaja pogleda združevanja in razlikovanja).
Vrstica z gumbi vsebuje tudi devet navigacijskih gumbov, s katerimi lahko skačetena trenutno/prvo/zadnjo razliko, na prejšnjo/naslednjo razliko (Ctrl+Dol/Ctrl+Gor), naprejšnji/naslednji konflikt (Ctrl+PgDn/Ctrl+PgUp) ali prejšnji/naslednji nerešen konflikt. Upoštevajte, da za KDiff3 "konflikt", ki ni bil samodejno rešen na začetku spajanja, ostane "konflikt", tudi če je rešen. Zato je potreba po razlikovanju "nerešenih konfliktov".
Obstaja tudi gumb (Samodejno napredovanje). Če to omogočite, potem ko je izbran en vir, KDiff3 samodejno skoči na in izbere naslednji nerešen konflikt. To lahko pomaga, ko želite vedno izbrati samo en vir. Ko potrebujete oba vira ali želite urediti po izbiri, boste to verjetno želeli izklopiti. Preden nadaljujete do naslednjega nerešenega spora KDiff3 vam za kratek čas pokaže učinek vaše izbire. Ta zakasnitev je nastavljiva v elementu Združi v pogovornem oknu z nastavitvami: Določite lahko Zakasnitev samodejnega napredovanja (ms): v milisekundah med 0 in 2000. Namig: Utrujen od veliko klikov? - Uporabite majhen zamik samodejnega napredovanja in bližnjice Ctrl+1/2/3, da izberete A/B/C za številne konflikte.
Okna za vnos ne prikazujejo kazalca, zato je treba izbire opraviti z miško s klikom z mouse button na začetku, držite tipko miške in se pomaknite do konca, kjer znova spustite tipko miške. Besedo lahko izberete tudi tako, da jo dvakrat kliknete. V urejevalniku spajanja izpisov lahko izberete tudi prek tipkovnice tako, da držite Dvigalka in navigacijo s smernimi tipkami.
Če izbor presega vidni obseg, lahko premaknete miško čez meje okna, kar povzroči KDiff3 da se pomakne v to smer.
Za zelo velike izbire lahko uporabite tudi navigacijske tipke, medtem ko držite miško. Npr. uporabite PgUp in PgDn za hiter prehod na določen položaj. Na končnem položaju spustite gumb miške.
Če želite izbrati vse v trenutnem oknu, uporabite menijski element → (Ctrl+A).
Za kopiranje v odložišče morate pritisniti gumb (Ctrl+C ali Ctrl+Ins). Obstaja pa možnost Izbira samodejnega kopiranja pri elementu Urejevalnik v pogovornem oknu z nastavitvami. Če je to omogočeno, se vse, kar izberete, takoj kopira in vam ni treba izrecno kopirati. Toda pri uporabi bodite pozorni, ker se lahko vsebina odložišča po nesreči uniči.
(Ctrl+X ali Dvigalka+Del) kopira v odložišče in izbriše izbrano besedilo.
(Ctrl+V ali Dvigalka+Ins) vstavi besedilo v odložišče na položaj kazalca ali čez trenutni izbor. Če prilepite v katero koli okno za vnos razlike, bo vsebina odložišča prikazana v tem oknu in primerjava se bo takoj znova začela. To je uporabno, če želite od nekje hitro zagrabiti del besedila in ga primerjati z nečim drugim, ne da bi prej ustvarili datoteke.
Shranjevanje bo dovoljeno šele, ko bodo rešeni vsi konflikti. Če datoteka že obstaja in je možnost Varnostne kopije datotek omogočena pri elementu Mapa v pogovornem oknu z nastavitvami, bo obstoječa datoteka preimenovana s pripono .orig, če pa takšna datoteka obstaja, bo izbrisana. Ko zaprete ali začnete drugo diff-analizo in podatki še niso bili shranjeni, potem vas bo KDiff3 vprašal, ali želite shraniti, preklicati ali nadaljevati brez shranjevanja. (KDiff3 ne lovi nobenih signalov. Torej, če "ubijete" pojavek KDiff3, bodo vaši podatki izgubljeni.)
Konci vrstic se shranijo v skladu z običajno metodo v osnovnem operacijskem sistemu. Za Unixe se vsaka vrstica konča z znakom za začetek vrstice "\n", medtem ko se pri sistemih, ki temeljijo na Win32, vsaka vrstica konča s povratnim znakom + znak za začetek vrstice "\r\n". KDiff3 ne ohrani končnic vrstic vhodnih datotek, kar tudi pomeni, da ne smete uporabljati KDiff3 z binarnimi datotekami.
Niz lahko iščete v katerem koli besedilnem oknu KDiff3. Element menija → (Ctrl+F) pogovorno okno, v katerem lahko določite niz za iskanje. Izberete lahko tudi okna, ki jih želite preiskati. Iskanje se vedno začne na vrhu. Uporabite element menija → (F3), da nadaljujete do naslednjega pojava. Če izberete iskanje po več oknih, bo prvo okno preiskano od vrha do dna, preden se bo iskanje spet začelo v naslednjem oknu na vrhu itd.
KDiff3 podpira tiskanje za razlike besedilnih datotek. Element menija → (Ctrl+P) odpre pogovorno okno, v katerem lahko izberete tiskalnik in prilagodite druge možnosti.
Obstaja več možnosti za prilagajanje obsega. Zaradi različnih pogovornih oken za tiskanje v različnih operacijskih sistemih se način doseganja določenih izbir obsega razlikuje.
- Vse:
Natisni vse.
- Trenutno:
Natisni stran, ki se začne pri prvi vidni vrstici v oknu. (V sistemih brez te možnosti je to mogoče doseči z določitvijo številke strani 10000 za tiskanje.)
- Izbira:
Preden se odločite za tiskanje, izberite besedilo z miško (kot pri kopiranju in lepljenju) v enem od oken za vnos razlike, da določite začetno in končno vrstico. Če v enem od oken za vnos razlike ni bilo izbrano nobeno besedilo, potem to ne bo na voljo. (V sistemih brez te možnosti je to mogoče doseči z določitvijo številke strani 9999 za tiskanje.)
- Obseg:
Določite prvo in zadnjo stran.
Druge pomembne možnosti za tiskanje bodo vzete iz običajnih možnosti:
Pisava, velikost pisave
Pokaži številke vrstic
Prelom besed
Barve
itd.
Za tiskanje je priporočljivo tudi ležeče oblikovanje.
Možnosti in seznam nedavnih datotek bodo shranjeni, ko zapustite program, in znova naloženi, ko ga zaženete. ( → menijski element).
Izberite pisavo s fiksno širino. (V nekaterih sistemih bo to pogovorno okno predstavilo tudi pisave spremenljive širine, vendar jih ne smete uporabljati.)
- Pogled urejevalnika in razlike:
- Barva ospredja:
Ponavadi črna.
- Barva ozadja:
Ponavadi bela.
- Različna barva ozadja:
Ponavadi svetlo siva.
- Barva A:
Ponavadi temno modra.
- Barva B:
Ponavadi temno zelena.
- Barva C:
Ponavadi temna magenta.
- Barva spora:
Običajno rdeče.
- Barva ozadja trenutnega obsega:
Ponavadi svetlo rumena.
- Barva ozadja razlike v trenutnem območju:
Običajno temno rumena.
- Barva za ročno poravnane razpone razlik:
Običajno oranžna.
- Primerjalni pogled mape:
- Najnovejša barva datoteke:
Običajno zelena.
- Barva najstarejše datoteke:
Običajno rdeče.
- Barva datoteke srednjih let:
Običajno močno rumena.
- Barva za manjkajoče datoteke:
Ponavadi črna.
Spreminjanje barv za primerjavo map bo učinkovito šele ob začetku naslednje primerjave map.
Pri sistemih s samo 16 ali 256 barvami nekatere barve niso na voljo v čisti obliki. V takih sistemih bo gumb izbral čisto barvo.
- Tab vstavi presledke
Če je to onemogočeno in pritisnete Tab tipko, se vstavi tabulator, sicer pa ustrezno število znakov.
- Velikost tabulatorja:
Lahko se prilagodi vašim posebnim potrebam. Privzeto je
8.- Samodejno zamikanje
Ko pritisnete Enter ali Return se za novo vrstico uporabi zamik prejšnje vrstice.
- Izbira samodejnega kopiranja
Vsak izbor se takoj kopira v odložišče, ko je aktiven, in vam ga ni treba izrecno kopirati.
- Slog konca vrstice:
Pri shranjevanju lahko izberete želeni slog konca črte. Privzeta nastavitev je običajna izbira za uporabljeni operacijski sistem.
Pri primerjavi datotek KDiff3 najprej poskuša ujemati vrstice, ki so enake v vseh vhodnih datotekah. Samo med tem korakom lahko prezre prazen prostor. Drugi korak primerja vsako vrstico. V tem koraku prazen prostor ne bo prezrt. Tudi med združevanjem prazen prostor ne bo prezrt.
- Ignoriraj številke (obravnavaj kot presledek)
Privzeto je izklopljeno. Številski znaki ('0'-'9', '.', '-') bodo prezrti v prvem delu analize, v katerem se izvede ujemanje vrstic. V rezultatu bodo razlike kljub temu prikazane, vendar se obravnavajo kot prazen prostor.
- Prezri komentarje C/C++ (obravnavaj kot prazen prostor)
Privzeto je izklopljeno. Spremembe komentarjev bodo obravnavane kot spremembe praznega prostora.
- Ignoriraj velike in male črke (obravnavaj kot beli prostor)
Privzeto je izklopljeno. Razlike med velikimi in malimi črkami (kot je 'A' proti 'a') bodo obravnavane kot spremembe v belem prostoru.
- Ukaz predprocesorja:
Glejte naslednji razdelek.
- Ukaz predprocesorja za ujemanje vrstic:
Glejte naslednji razdelek.
- Potrudi se (počasneje)
Poskusite najti še manjšo delto. (Privzeto je vklopljeno.) To bo verjetno učinkovito za zapletene in velike datoteke. In počasno za zelo velike datoteke.
- Poravnajte B in C za 3 vhodne datoteke
Poskusite poravnati B in C, ko primerjate ali združujete tri vhodne datoteke. Ni priporočljivo za združevanje, ker je združevanje lahko bolj zapleteno. (Privzeto je izklopljeno.)
- Zakasnitev samodejnega napredovanja (ms):
Ko je v načinu samodejnega napredovanja, ta nastavitev določa, kako dolgo naj bo prikazan rezultat izbire, preden skoči na naslednji nerešen konflikt.
- Prikaži pogovorna okna z informacijami
Prikaži pogovorno okno z informacijami o številu sporov.
- Privzeto združevanje datotek praznega prostora 2/3:
Samodejno reši vse konflikte praznega prostora z izbiro navedene datoteke. (Privzeta je ročna izbira.) Uporabno, če prazen prostor v mnogih datotekah res ni pomemben. Če to potrebujete le občasno, bolje uporabite Izberi A/B/C za vse nerešene spore belega prostora v meniju . Upoštevajte, da če omogočite Prezri številke (obravnavaj kot presledek) ali Prezri komentarje C/C++ (obravnavaj kot presledek), potem ta samodejna izbira velja tudi za spore v številke ali komentarje.
- Samodejno združevanje regularnega izraza:
Regularni izraz za vrstice, kjer KDiff3 mora samodejno izbrati en vir. Glejte tudi Samodejno združevanje....
- Zaženi samodejno združevanje regularnih izrazov ob začetku združevanja
Če je aktivirano KDiff3 zažene samodejno spajanje z možnostjo Regularni izraz samodejnega združevanja:, ko se združevanje začne.
- Začetek vnosa v zgodovino regularnega izraza
Regularni izraz za začetek vnosa v zgodovino združevanja. Običajno ta vrstica vsebuje ključno besedo "
$Log$". Privzeta vrednost: ".*\$Log.*\$.*"- Začetek vnosa v zgodovino regularnega izraza
Vnos v zgodovino spajanja je sestavljen iz več vrstic. Podajte regularni izraz za zaznavanje prve vrstice (brez uvodnega komentarja). Z oklepaji združite ključe, ki jih želite uporabiti za razvrščanje. Če ostane prazno, potem KDiff3 predpostavlja, da prazne vrstice ločujejo vnose zgodovine. Glejte tudi Samodejno združevanje....
- Razvrščanje združevanja zgodovine
Omogoči razvrščanje zgodovine nadzora različic.
- Vrstni red ključa za začetek vnosa v zgodovino:
Vsak par oklepajev, uporabljen v regularnem izrazu za začetni vnos zgodovine, združuje ključ, ki se lahko uporablja za razvrščanje. Podajte seznam ključev (ki so oštevilčeni po vrstnem redu pojavljanja, začenši z
1) z uporabo ',' kot ločilo (npr. "4,5,6,1,2,3,7"). Če polje ostane prazno, razvrščanje ne bo izvedeno. Glejte tudi Samodejno združevanje....- Zgodovina nadzora različic združevanja ob začetku združevanja
Če je aktivirano, KDiff3 zažene samodejno združevanje zgodovine z uporabo zgoraj omenjenih možnosti, ko se združevanje začne.
- Največje število vnosov v zgodovino:
KDiff3 obreže seznam zgodovine po podanem številu vnosov. Uporabite
-1, da preprečite obrezovanje. (Privzeto je-1).- Preizkusite svoje regularne izraze
Ta gumb prikaže pogovorno okno, ki vam omogoča izboljšanje in testiranje zgornjih regularnih izrazov. Preprosto kopirajte ustrezne podatke iz svojih datotek v vzorčne vrstice. Možnost Rezultat ujemanja: bo takoj pokazala, ali je ujemanje uspelo ali ne. Rezultat ključa za razvrščanje: bo prikazal ključ, uporabljen za razvrščanje zgodovine združevanja.
- Nepomemben ukaz združevanja:
Določite lasten ukaz, ki naj se kliče, ko KDiff3 zazna, da pri združevanju treh datotek datoteka iz B ne prispeva nobenih ustreznih podatkov, ki jih že ne vsebuje datoteka iz C. Ukaz se kliče s tremi imeni datotek kot parametri. Podatki, ki se ujemajo z regularnim izrazom za samodejno združevanje ali v zgodovini, se ne štejejo za pomembne.
- Samodejno shranjevanje in zapiranje ob združevanju brez sporov
Če je bil KDiff3 zagnan za združevanje datotek iz ukazne vrstice in vsi konflikti so rešljivi brez interakcije uporabnika, nato pa se samodejno shranijo in zaprejo. (Podobno možnosti ukazne vrstice
--auto.)
Te možnosti se nanašajo na prečesavanje mape in obravnavo združevanja: Za podrobnosti glejte Primerjava map/dokumentov o združevanju.
Obstaja pa ena možnost, ki je pomembna tudi za shranjevanje posameznih datotek:
- Varnostne kopije datotek (.orig)
Ko je datoteka shranjena in že obstaja starejša različica, bo prvotna različica preimenovana s pripono
.orig. Če stara datoteka varnostne kopije s končnico.origže obstaja, bo ta izbrisana brez varnostne kopije.
- Uporabite isto kodiranje za vse
Naslednje možnosti kodiranja je mogoče prilagoditi ločeno za vsak element ali če je ta možnost nastavljena, bodo vse vrednosti prevzele prvo vrednost.
- Opomba: lokalno kodiranje je "..."
Nad izbirniki kodekov se prikaže ta opomba, ki vam pove, kakšno je lokalno kodiranje. (To ni nastavljivo, ampak za vašo informacijo, če ne poznate svojega lokalnega kodiranja, vendar ga morate izbrati.)
- Samodejno zaznavanje
Ta možnost poskuša uporabiti BOM ali meta podatke iz dokumentov XML/HTML za zaznavanje kodiranja. Če tega ne stori, bo preveril, ali je kratek vzorec z začetka datoteke mogoče interpretirati kot UTF-8. Če je to preverjanje uspešno, bo uporabljen UTF-8. V nasprotnem primeru se bo vrnil na uporabniško izbrani kodek. Podprt je samo UTF-8 brez BOM ali metapodatkov.
- Kodiranje datoteke za A/B/C:
Prilagodite kodiranje datoteke za vhodne datoteke. To vpliva na interpretacijo posebnih znakov. Ker lahko prilagodite vsak kodek posebej, lahko celo primerjate in združite datoteke, ki so bile shranjene z uporabo različnih kodekov.
- Kodiranje datoteke za spajanje in shranjevanje:
Ko uredite datoteko, lahko prilagodite, katero kodiranje bo uporabljeno pri shranjevanju na disk.
- Kodiranje datoteke za datoteke predprocesorja:
Ko definirate predprocesorje, morda ne bodo mogli delovati na vašemkodek. (npr.: vaše datoteke so 16-bitne unicode in vaš predprocesor lahko samo vzame 8-bitni ASCII.) S to možnostjo lahko določite kodiranjeizhod predprocesorja.
- Jezik od desne proti levi:
Nekateri jeziki pišejo z desne proti levi. Ko je ta možnost omogočena, KDiff3 nariše besedilo od desne proti levi v oknih za vnos razlike in v oknu za spajanje izhodov. Upoštevajte, da če zaženete KDiff3 z možnostjo ukazne vrstice
--reversebo tudi vsa postavitev izvedena od desne proti levi. (To je zmožnost, ki jo ponuja Qt™.)Opomba
Ta dokumentacija je bila napisana ob predpostavki, da sta ta možnost ali obratna postavitev onemogočeni. Zato je treba nekatere sklice na "levo" ali "desno" nadomestiti z ustreznim primerkom, če uporabljate te možnosti.
(Te možnosti in dejanja so na voljo v menijih ali vrstici z gumbi.)
- Možnosti pregleda:
Te možnosti so na voljo le, če primerjate tri datoteke. V običajnem načinu so vse razlike prikazane v enem barvno kodiranem preglednem stolpcu. Toda včasih vas še posebej zanimajo razlike med samo dvema od teh treh datotek. Če izberete pregled "A proti B", "A proti C" ali "B proti C", bo prikazan drugi stolpec pregleda z zahtevanimi informacijami poleg običajnega pregleda.
Zavihajte vrste, ko bi njihova dolžina presegla širino okna.
Včasih želite bolje izkoristiti prostor na zaslonu za dolge vrste. Skrijte okna, ki niso pomembna. (V meniju oken.)
Preklapljajte med okni za razlikovanje, ki so prikazana eno poleg drugega (A levo od B levo od C) ali eno nad drugim (A nad B nad C). To bi moralo pomagati tudi pri dolgih vrstah. (V meniju .)
Deluje, če primerjate samo dve datoteki. En sam klik zažene združevanje in uporabi ime zadnje vhodne datoteke kot privzeto ime izhodne datoteke. (Ko se to uporabi za ponovni zagon združevanja, bo ime izhodne datoteke ohranjeno.)
To izklopite, če želite onemogočiti označevanje sprememb samo s presledki v besedilu ali preglednih stolpcih. (Upoštevajte, da to velja tudi za spremembe v številkah ali komentarjih, če sta možnosti Prezri številke (obravnavaj kot presledek) ali Prezri komentarje C/C++ (obravnavaj kot presledek) aktivno.)
Včasih so vidni prostori in zavihki moteči. To lahko izklopite.
Izberete lahko, ali naj bodo prikazane številke vrstic za vhodne datoteke.
KDiff3 podpira dve možnosti predprocesorja.
- Ukaz predprocesorja:
Ko je katera koli datoteka prebrana, bo posredovana skozi ta zunanji ukaz. Izhod tega ukaza bo viden namesto izvirne datoteke. Napišete lahko svoj predprocesor, ki bo ustrezal vašim posebnim potrebam. Uporabite to, da odrežete moteče dele datoteke ali samodejno popravite zamik itd.
- Ukaz predprocesorja za ujemanje vrstic:
Ko je katera koli datoteka prebrana, bo posredovana skozi ta zunanji ukaz. Če je podan tudi ukaz predprocesorja (glejte zgoraj), je izhod predprocesorja vhod predprocesorja za ujemanje vrstic. Izhod bo uporabljen le med fazo analize ujemanja vrstic. Napišete lahko svoj predprocesor, ki bo ustrezal vašim posebnim potrebam. Vsaka vhodna vrstica mora imeti ustrezno izhodno vrstico.
Ideja je omogočiti uporabniku večjo prilagodljivost med konfiguriranjem rezultata razlik. Toda to zahteva zunanji program in mnogi uporabniki ga ne želijo napisati sami. Dobra novica je, da zelo pogosto sed ali perl opravita to delo.
Primer: Preprost testni primer: Razmislite o datoteki a.txt (6 vrstic):
aa
ba
ca
da
ea
fa
In datoteka b.txt (3 vrstice):
cg
dg
eg
Brez predprocesorja bi bile naslednje vrstice postavljene ena poleg druge:
aa - cg
ba - dg
ca - eg
da
ea
fa
To verjetno ni zaželeno, saj je v prvi črki dejansko zanimiv podatek. Da algoritmu za ujemanje pomagamo prezreti drugo črko, lahko uporabimo ukaz predprocesorja za ujemanje vrstic, ki nadomesti 'g' z 'a':
sed 's/g/a/'
S tem ukazom bi bil rezultat primerjave:
aa
ba
ca - cg
da - dg
ea - eg
fa
Notranji algoritem za ujemanje vidi datoteke po zagonu predprocesorja za ujemanje vrstic, toda na zaslonu je datoteka nespremenjena. (Običajni predprocesor bi spremenil podatke tudi na zaslonu.)
Ta razdelek predstavlja le nekaj zelo osnovnih funkcij sed. Za več informacij glejte info:/sed ali https://www.gnu.org/software/sed/manual/html_mono/sed.html. Vnaprej prevedena različica za Windows® najdete na http://unxutils.sourceforge.net. Upoštevajte, da naslednji primeri predpostavljajo, da je ukaz sed v neki mapi v spremenljivki okolja PATH. Če temu ni tako, morate podati celotno absolutno pot za ukaz.
V tem kontekstu se uporablja samo nadomestni ukaz sed:
sed 's/REGEXP/REPLACEMENT/FLAGS'
Preden uporabite nov ukaz znotraj KDiff3, ga najprej preizkusite v konzoli. Tukaj je uporaben ukaz echo. Primer:
echo abrakadabra | sed 's/a/o/' -> abrakadabra
Ta primer prikazuje zelo preprost ukaz sed, ki zamenja prvo pojavitev "a" z "o". Če želite zamenjati vse pojavitve, potem potrebujete zastavico "g":
echo abrakadabra | sed 's/a/o/g' -> obrokodobro
Simbol "|" je cevni ukaz, ki prenese izhod prejšnjega ukaza na vhod naslednjega ukaza. Če želite preizkusiti z daljšo datoteko, lahko uporabite cat na sistemu UNIX® ali type v sistemu Windows®. sed bo izvedel zamenjavo za vsako vrstico.
catimedatoteke| sedmožnosti
Trenutno KDiff3 razume le komentarje C/C++. Z možnostjo Ukaz predprocesorja za ujemanje vrstic: lahko tudi prezrete druge vrste komentarjev, tako da jih pretvorite v komentarje C/C++.
Primer: Če želite prezreti komentarje, ki se začnejo z "#", jih želite pretvoriti v "//". Upoštevajte, da morate za učinek omogočiti tudi možnost Prezri komentarje C/C++ (obravnavaj kot presledek). Ustrezen Ukaz predprocesorja za ujemanje vrstic: bi bil:
sed 's/#/\/\//'
Ker ima za sed znak "/" poseben pomen, je treba znak "\" postaviti pred vsak "/" v nadomestnem nizu. Včasih je "\" potreben za dodajanje ali odstranjevanje posebnega pomena določenih znakov. Enojni narekovaji (') so pomembni samo pri testiranju na ukazni lupini, saj bo drugače poskušala obdelati nekatere znake. KDiff3 tega ne naredi, razen za ubežna zaporedja '\"' in '\\'.
Uporabite naslednji ukaz predprocesorja za ujemanje vrstic: za pretvorbo vseh vnosov v velike črke:
sed 's/\(.*\)/\U\1/'
Tu je ".*" regularni izraz, ki se ujema s katerim koli nizom in se v tem kontekstu ujema z vsemi znaki v vrstici. "\1" v nadomestnem nizu se nanaša na ujemajoče se besedilo v prvem paru "\(" and "\)". "\U" pretvori vstavljeno besedilo v velike črke.
CVS in drugi sistemi za nadzor različic uporabljajo več ključnih besed za vstavljanje samodejno ustvarjenih nizov (info:/cvs/Keyword substitution). Vsi sledijo vzorcu "$KEYWORD generirano besedilo$". Zdaj potrebujemo ukaz predprocesorja za ujemanje vrstic, ki odstrani samo generirano besedilo:
sed 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
"\|" ločuje možne ključne besede. Ta seznam boste morda želeli spremeniti glede na svoje potrebe. "\" pred "$" je potreben, ker se drugače "$" ujema s koncem vrstice.
Med eksperimentiranjem z sed boste morda razumeli in vam bodo celo všeč ti regularni izrazi. Uporabni so, ker obstaja veliko drugih programov, ki prav tako podpirajo podobne stvari.
Ignoriranje številk je pravzaprav vgrajena možnost. Toda kot drug primer, takole bi bil videti ukaz predprocesorja za ujemanje vrstic.
sed 's/[0123456789.-]//g'
Vsak znak znotraj '[' in ']' se ujema in ne bo zamenjan z ničemer.
Včasih je besedilo zelo strogo oblikovano in vsebuje stolpce, ki jih želite vedno prezreti, medtem ko obstajajo drugi stolpci, ki jih želite ohraniti za analizo. V naslednjem primeru je prvih pet stolpcev (znakov) prezrtih, naslednjih deset stolpcev je ohranjenih, nato je spet pet stolpcev prezrtih in preostala vrstica je ohranjena.
sed 's/.....\(..........\).....\(.*\)/\1\2/'
Vsaka pika '.' se ujema s katerim koli posameznim znakom. "\1" in "\2" v nadomestnem nizu se nanašata na ujemajoče se besedilo znotraj prvega in drugega para "\(" in "\)", ki označujeta besedilo, ki ga je treba ohraniti.
Včasih želite uporabiti več zamenjav hkrati. Nato jih lahko ločite med seboj s podpičjem ';'. Primer:
echo abrakadabra | sed 's/a/o/g;s/\(.*\)/\U\1/' -> OBROKODOBRO
Namesto sed boste morda želeli uporabiti nekaj drugega, kot je perl.
perl -p -e 's/REGEXP/REPLACEMENT/FLAGS'
Toda nekatere podrobnosti so drugačne v perl. Upoštevajte, da kjer sed potrebuje "\(" in "\)", perl zahteva enostavnejši "(" in ")" brez '\'. Primer:
sed 's/\(.*\)/\U\1/' perl -p -e 's/(.*)/\U\1/'
Podatki se prenašajo skozi vse notranje in zunanje predprocesorje v naslednjem vrstnem redu:
Običajni predprocesor,
Predprocesor za ujemanje vrstic,
Ignoriraj velike črke (obravnavaj kot presledek) (pretvorba v velike črke),
Zaznavanje komentarjev C/C++,
Ignoriraj številke (obravnavaj kot beli prostor),
Ignoriraj beli prostor
Podatki po običajnem predprocesorju bodo ohranjeni za prikaz in združevanje. Druge operacije spreminjajo le podatke, ki jih vidi algoritem za ujemanje razlik med vrsticami.
V redkih primerih, ko uporabljate običajni predprocesor, upoštevajte, da predprocesor za ujemanje vrstic vidi izhod običajnega predprocesorja kot vhod.
Ukazi predprocesorja so pogosto zelo uporabni, a kot pri vsaki možnosti, ki spremeni vaša besedila ali samodejno skrije določene razlike, lahko pomotoma spregledate določene razlike in v najslabšem primeru uničite pomembne podatke.
Iz tega razloga med združevanjem, če se uporablja običajen predprocesorski ukaz, vam bo KDiff3 to povedal in vas vprašal, ali naj bo onemogočeno ali ne. Vendar vas ne bo opozoril, če je aktivna možnost Ukaz predprocesorja za ujemanje vrstic:. Združevanje se ne bo dokončalo, dokler niso razrešeni vsi spori. Če ste onemogočili menijski element → , bodo razlike, ki so bile odstranjene z ukazom predprocesorja za ujemanje vrstic: možnost bo prav tako nevidna. Če gumb ostane onemogočen med združevanjem (zaradi preostalih sporov), se prepričajte, da ste omogočili elelent menija → . Če teh manj pomembnih razlik ne želite združiti ročno, lahko izberete → element menija.
Programerji morajo pogosto spremeniti veliko datotek v mapi, da dosežejo svoj namen. Za ta KDiff3 omogoča tudi primerjavo in rekurzivno združevanje celotnih map!
Čeprav se zdi, da sta primerjava in združevanje map povsem očitna, morate vedeti več podrobnosti. Najpomembnejše je seveda dejstvo, da zdaj lahko vsaka operacija vpliva na veliko datotek. Če nimate varnostne kopije izvirnih podatkov, se je lahko zelo težko ali celo nemogoče vrniti v prvotno stanje. Zato se pred začetkom združevanja prepričajte, da so vaši podatki varni in da je vrnitev možna. Ali boste naredili arhiv ali uporabili kakšen sistem za nadzor različic, je vaša odločitev, a tudi izkušeni programerji in integratorji tu in tam potrebujejo stare vire. In upoštevajte, da čeprav se jaz (avtor KDiff3) trudim po svojih najboljših močeh, ne morem zagotoviti, da ne bo nobenih napak. Glede na GNU GPL za ta program NI nikakršnega JAMSTVA. Zato bodite ponižni in vedno imejte v mislih:
Motiti se je človeško, a če želite stvari zares zamočiti, potrebujete računalnik.
In to lahko naredi ta program za vas: KDiff3 ...
... rekurzivno bere in primerja dve ali tri mape,
... še posebej skrbi za simbolne povezave,
... vam omogoča brskanje po datotekah z dvojnim klikom miške,
... za vsak element predlaga operacijo združevanja, ki jo lahko spremenite pred začetkom združevanja map,
... vam omogoča simulacijo združevanja in navede dejanja, ki bi se zgodila, ne da bi jih dejansko izvedli,
... vam omogoča resnično združevanje in vam omogoča interakcijo, kadar koli je potrebna ročna interakcija,
... omogoča zagon izbrane operacije za vse elemente (tipka F7) ali izbrani element (tipka F6),
... omogoča nadaljevanje združevanja po ročni interakciji s tipko F7,
... po želji ustvari varnostne kopije z razširitvijo
.orig,...
To je zelo podobno spajanju in primerjavi posamezne datoteke. Določiti morate samo mape v ukazni vrstici ali v pogovornem oknu za odpiranje datoteke.
kdiff3mapa1 mapa2kdiff3mapa1 mapa2-odestdir
Če ciljna mapa ni navedena, potem KDiff3 bo uporabil mapo2.
kdiff3mapa1 folder2 folder3kdiff3folder1 folder2 folder3-odestdir
Ko se združijo tri mape, se kot osnova za združevanje uporabi mapa1. Če ciljna mapa ni navedena, potem bo KDiff3 kot ciljno mapo za združevanje uporabil mapo3.
Upoštevajte, da se samodejno začne samo primerjava, ne pa tudi združevanje. Za to morate najprej izbrati vnos v meniju ali tipko F7. (Več podrobnosti pozneje.)
Med branjem map se prikaže okno s sporočilom, ki vas obvešča o napredku. Če prekinete pregled mape, bodo prikazane samo datoteke, ki so bile do takrat primerjane.
Ko je pregled mape končan, KDiff3 bo prikazalo seznamsko polje z rezultati na levi, ...

... in podrobnosti o trenutno izbranem artiklu na desni:

Vsaka datoteka in mapa, ki je bila najdena med prečesavanjem, je prikazana tukaj v drevesu. Predmet lahko izberete tako, da ga enkrat kliknete z miško.
Mape so privzeto strnjene. Lahko jih razširite in strnete s klikom na "+"/"-" ali z dvojnim klikom na element ali z uporabo smerne tipke Levo/Desno. Meni vsebuje tudi dve dejanji in , s katerima lahko strnete ali razširite vse mape hkrati.
Če dvokliknete element datoteke, se začne primerjava datotek in prikaže se okno razlik datotek.
Slika v stolpcu z imenom odraža vrsto datoteke v prvi mapi (A). Lahko je eno od teh:
Normalna datoteka
Običajna mapa (slika mape)
Povezava do datoteke (slika datoteke s puščico povezave)
Povezava do mape (slika mape s puščico povezave)
Če je vrsta datoteke v drugih mapah drugačna, je to vidno v stolpcih A/B/C in v oknu, ki prikazuje podrobnosti o izbranem predmetu. Upoštevajte, da v tem primeru ni mogoče samodejno izbrati operacije združevanja. Ob začetku spajanja bo uporabnik obveščen o tovrstnih težavah.
Kot lahko vidite na zgornji sliki, so v stolpcih A/B/C uporabljene barve rdeča, zelena, rumena in črna.
Črna: ta element ne obstaja v tej mapi.
Zelena: najnovejši predmet.
Rumena: Starejša od zelene, novejše od rdeče.
Rdeča: Najstarejši predmet.
Toda pri predmetih, ki so bili v primerjavi enaki, je tudi njihova barva enaka, tudi če starost ni enaka.
Mape veljajo za enake, če so vsi elementi, ki jih vsebujejo, enaki. Potem bodo tudi enake barve. Toda starost mape se ne upošteva pri njeni barvi.
Na idejo za to barvno shemo sem naletel v dirdiff ukazu. Barve so podobne barvam lista, ki je zelen, ko je nov, postane kasneje rumen in rdeč, ko je star.
Po primerjavi map KDiff3 oceni tudi predlog združitve. To je prikazano v stolpcu Operacija. Operacijo lahko spremenite s klikom na operacijo, ki jo želite spremeniti. Odpre se majhen meni, v katerem lahko izberete operacijo za ta element. (Najbolj potrebne operacije lahko izberete tudi s tipkovnico. Ctrl+1/2/3/4/Del bo izbral A/B/C/Združi/ Izbriši, če je na voljo.) Ta operacija bo izvedena med združevanjem. Katere operacije so na voljo, je odvisno od predmeta in načina združevanja, v katerem ste. Način združevanja je le en izmed
Spajanje treh map (A se obravnava kot starejša osnova obeh).
Spajanje dveh map.
Način sinhronizacije dveh map (aktivirajte prek možnosti Sinhroniziraj mape).
Pri spajanju treh map bo predlog operacije: Če za element...
.. vse tri mape so enake: Kopiraj iz C
... A in C sta enaka, vendar B ni: Kopiraj iz B (ali če B ne obstaja, izbriši cilj, če obstaja)
... A in B sta enaka, C pa ni: Kopiraj iz C (ali če C ne obstaja, izbriši cilj, če obstaja)
... B in C sta enaka, vendar A ni: Kopiraj iz C (ali če C ne obstaja, izbriši cilj, če obstaja)
... obstaja samo A: Izbriši cilj (če obstaja)
... obstaja samo B: Kopiraj iz B
... obstaja samo C: Kopiraj iz C
... A, B in C niso enaki: Združi
... A, B in C nimajo iste vrste datoteke (npr. A je mapa, B je datoteka): "Napaka: Vrste datotek v nasprotju". Medtem ko taki elementi obstajajo, se združevanje map ne more začeti.
Pri spajanju dveh map bo predlog operacije: Če za element ...
... obe mapi sta enaki: Kopiraj iz B
... A obstaja, vendar ne B: Kopiraj iz A
... B obstaja, vendar ne A: Kopiraj iz B
... A in B obstajata, vendar nista enaka: Spoji
... A in B nimata iste vrste datoteke (npr. A je mapa, B > je datoteka): "Napaka: Vrste datotek v nasprotju". Medtem ko taki elementi obstajajo, se združevanje map ne more začeti.
Način sinhronizacije je aktiven, če sta bili podani samo dve mapi in noben izrecni cilj in če je aktivna možnost Sinhroniziraj mape. KDiff3 nato izbere privzeto operacijo, tako da sta pozneje obe mapi enaki. Če za artikel ...
... obe mapi sta enakovredni: Ne bo narejeno ničesar.
... A obstaja, vendar ne B: Kopiraj A v B
... B obstaja, vendar ne A: Kopiraj B v A
... A in B obstajata, vendar nista enaka: Spoji in shrani rezultat v obe mapi. (Za uporabnika je vidno ime shranjevalne datoteke B, potem pa KDiff3 prekopira B tudi v A.)
... A in B nimata iste vrste datoteke (npr. A je mapa, B > je datoteka): "Napaka: Vrste datotek v nasprotju". Medtem ko taki elementi obstajajo, se združevanje map ne more začeti.
Ko sta dve mapi združeni in je izbrana možnost Kopiraj novejše namesto združevanja (nevarno), potem KDiff3 pogleda datume in predlaga izbiro novejše datoteke. Če datoteke niso enake, vendar imajo enake datume, bo operacija vsebovala "Napaka: Datumi so enaki, datoteke pa ne." Medtem ko taki elementi obstajajo, se združevanje map ne more začeti.
Med združevanjem bodo obdelane ena datoteka za drugo. V stolpcu stanja bo prikazano Končano za elemente, pri katerih je bila operacija združevanja uspešna, in druga besedila, če se zgodi kaj nepričakovanega. Ko je združevanje končano, morate opraviti zadnji pregled, da vidite, ali je stanje za vse elemente sprejemljivo.
Ko je v možnostih omogočen način primerjave datotek Popolna analiza, KDiff3 bodo prikazani dodatni stolpci s številom nerešenih, rešenih, nebelih in belo prostornih sporov. (Stolpec Rešeno bo prikazan samo pri primerjavi ali združevanju treh map.)
Več možnosti vpliva na to, katere datoteke so tukaj navedene. Nekateri so dostopni v pogovornem oknu z nastavitvami. Meni Mapa vsebuje vnose:
Pokaži enake datoteke: Datoteke, ki so bile zaznane kot enake v vseh vhodnih mapah.
Pokaži različne datoteke: Datoteke, ki obstajajo v dveh ali več mapah, vendar niso enake.
Prikaži datoteke samo v A: datoteke, ki obstajajo samo v A, ne pa tudi v B ali C.
Prikaži datoteke samo v B: datoteke, ki obstajajo samo v B, ne pa tudi v A ali C.
Prikaži datoteke samo v C: datoteke, ki obstajajo samo v C, ne pa tudi v A ali B.
Aktivirajte samo možnosti Pokaži za elemente, ki jih želite na seznamu. Če na primer želite navesti samo vse elemente, ki obstajajo v A ali v B, vendar ne v obeh, boste morali aktivirati Prikaži datoteke samo v A in Pokaži datoteke samo v B in deaktiviraj vse druge (Pokaži enake datoteke, Pokaži različne datoteke, Pokaži datoteke samo v C). Seznam bo takoj posodobljen, da bo odražal spremembo.
Te možnosti veljajo tudi za mape z eno izjemo: Če onemogočite Pokaži različne datoteke, ne boste skrili nobene celotne mape. To bo delovalo samo za datoteke znotraj.
Upoštevajte, da je od teh samo možnost Pokaži enake datoteke obstojna. Drugi so omogočeni ob zagonu KDiff3.
Združujete lahko trenutno izbrani element (datoteko ali mapo) ali vse elemente. Ko izberete vse svoje operacije (tudi v vseh podmapah), lahko začnete združevanje.
Zavedajte se, da če ciljne mape niste izrecno določili, bo cilj C v načinu treh map, B v načinu združevanja dveh map in v sinhronizacijski način bo A ali/in B.
Če ste določili ciljno mapo, preverite tudi, ali so vsi elementi, ki bi morali biti v izhodu, v drevesu. Obstaja nekaj možnosti, zaradi katerih so nekateri elementi izpuščeni iz primerjave in združevanja map. Preverite te možnosti, da se izognete neprijetnim presenečenjem:
Rekurzivne mape: če je to izklopljeno, elementov v podmapah ne bo mogoče najti.
Vzorec/Protivzorec: Vključi/izključi elemente, ki se ujemajo
Izključi skrite datoteke
Pokaži možnosti (Pokaži enake/različne datoteke, Datoteke samo v A/B/C)
Če spremenite nastavitve, da prikažete seznam več datotek, morate sami opraviti ponovno prečesavanje prek menija → . (Razlog za to je, da zaradi hitrejše primerjave hitrosti KDiff3 izpusti primerjavo za datoteke, ki jih ti kriteriji zavrnejo.) Če ste spremenili vzorce datotek in map, da izključite datoteke, bo seznam datotek takoj posodobljen, ko zaprete dialog možnosti.
Upoštevajte, da ko pišete v popolnoma novo mapo, običajno želite kopirati tudi enake datoteke. V tem primeru omogočite možnost Pokaži enake datoteke. Če je vaša ciljna mapa eden od vnosov, potem to ni potrebno, ker je datoteka že tam.
Če ste do sedaj zadovoljni, je ostalo enostavno.
Če želite združiti vse elemente: izberite v meniju ali pritisnite F7 (kar je privzeta bližnjica). Če želite združiti samo trenutni element: izberite Zaženi operacijo za trenutnem elementu ali pritisnite F6.
Če zaradi nasprotujočih si vrst datotek nekateri elementi z neveljavnimi operacijami še vedno obstajajo, se bo prikazalo sporočilo in ti elementi bodo označeni, tako da lahko izberete veljavno operacijo za element.
Če združujete vse elemente, se prikaže pogovorno okno z možnostmi Naredi, Simuliraj in Prekliči.
Izberite Simuliraj, če želite videti, kaj bi naredili, ne da bi tega dejansko storili. Prikazan bo podroben seznam vseh operacij.
V nasprotnem primeru izberite Naredi to, da resnično začnete združevati.
Nato bo KDiff3 izvedel navedeno operacijo za vse elemente. Če je potrebna ročna interakcija (združitev ene datoteke), se odpre okno za združevanje (glejte velik posnetek zaslona).
Ko končate z ročnim združevanjem datoteke, ponovno izberite ali tipko F7. Če ga še niste shranili, vas bo pogovorno okno pozvalo, da to storite. Nato bo KDiff3 nadaljeval z naslednjim elementom.
Ko KDiff3 naleti na napako, vam bo to povedal in prikazal verbose-status-information. Na dnu tega seznama bo nekaj sporočil o napakah, ki vam bodo pomagali razumeti vzrok težave. Ko nadaljujete z združevanjem (tipka F7) KDiff3 vam bo ponudil možnost, da poskusite znova ali preskočite element, ki je povzročil težavo. To pomeni, da lahko pred nadaljevanjem izberete drugo operacijo ali rešite težavo na drug način.
Ko je združevanje končano, vas bo KDiff3 obvestil preko sporočilnega polja.
Če so bili nekateri elementi združeni posamezno pred zagonom directorymerge, potem KDiff3 si to zapomni (medtem ko teče ta združevalna seja) in jih ne združi znova, ko se pozneje izvede združevanje za vse elemente. Tudi če je bilo spajanje preskočeno ali ni bilo nič shranjeno, se ti elementi štejejo kot dokončani. Šele ko spremenite operacijo spajanja, bo status Končano elementa odstranjen in ga bo mogoče znova združiti.
KDiff3 nastavitve (meni → ) ima razdelek z imenom "Združevanje map" s temi možnostmi:
- Rekurzivne mape
Izberite, ali želite po mapah iskati rekurzivno.
- Vzorci datotek:
V drevo bodo postavljene samo datoteke, ki se ujemajo s katerim koli vzorcem tukaj. Tukaj lahko določite več kot en vzorec z uporabo podpičja ";" kot ločilo. Veljavni nadomestni znaki: '*' in '?'. (npr.. "
*.cpp;*.h"). Privzeto je "*". Ta vzorec se ne uporablja za mape.- Datotečni proti-vzorci:
Datoteke, ki ustrezajo temu vzorcu, bodo izključene iz drevesa. Tukaj lahko določite več kot en vzorec z uporabo podpičja ";" kot ločila. Veljavni nadomestni znaki: '*' in '?'. Privzeto je "
*.orig;*.o;*.obj".- Anti-vzorci map:
Mape, ki se ujemajo s tem vzorcem, bodo izključene iz drevesa. Tukaj lahko določite več kot en vzorec z uporabo podpičja ";" kot ločila. Veljavni nadomestni znaki: '*' in '?'. Privzeto je "
CVS;deps;.svn".- Uporabite Prezri datoteko
Prezrite datoteke in mape, ki bi jih prezrl tudi vaš nadzor vira. Številne samodejno ustvarjene datoteke so prezrte s seznami prezrtih. Velika prednost je, da je to lahko specifično za mapo prek lokalne datoteke za prezrtje. (Za več podrobnosti si oglejte dokumente za nadzor različic.)
- Poiščite skrite datoteke in mape
V nekaterih datotečnih sistemih imajo datoteke atribut "Skrita (Hidden)". Na drugih sistemih ime datoteke, ki se začne s piko "." povzroči, da se skrije. Ta možnostvam omogoča, da se odločite, ali želite te datoteke vključiti v drevo ali ne.Privzeto je vklopljeno.
- Sledite povezavam datotek
Za povezave do datotek: Ko je onemogočeno, se primerjajo simbolične povezave. Ko je omogočeno, se primerjajo datoteke za povezavami. Privzeto je izklopljeno.
- Sledite povezavam map
Za povezave do map: Ko je onemogočeno, bodo simbolične povezave primerjane. Ko je omogočeno, bo povezava obravnavana kot mapa in bo pregledana rekurzivno. (Upoštevajte, da program ne preveri, ali je povezava "rekurzivna". Tako bi na primer mapa, ki vsebuje povezavo do mape, povzročila neskončno zanko in čez nekaj časa, ko se sklad prelije ali je ves pomnilnik porabljen, zruši program.) Privzeto je izklopljeno.
- Primerjava imen datotek, občutljiva na velike in male črke
Privzeta vrednost je false v Windows®, true za druge operacijske sisteme.
- Način primerjave datotek:
- Binarna primerjava
To je privzeti način primerjave datotek.
- Popolna analiza
Izvedite popolno analizo vsake datoteke in prikažite stolpce s statističnimi informacijami. (Število rešenih, nerešenih, nebelih in belih konfliktov.) Popolna analiza je počasnejša od preproste dvojiške analiza in veliko počasnejši pri uporabi v datotekah, ki ne vsebujejo besedila. (Določite ustrezne protivzorce datotek.)
- Zaupaj velikosti in datumu spremembe (nevarno)
Če primerjate velike mape prek počasnega omrežja, bo morda hitreje primerjati samo datume sprememb in dolžino datoteke. Toda to izboljšanje hitrosti prihaja s ceno majhne negotovosti. To možnost uporabljajte previdno. Privzeto je izklopljeno.
- Zaupajte velikosti (nevarno)
Podobno kot pri zaupanju v datum spremembe. Tu do prave primerjave ne pride. Dve datoteki veljata za enaki, če sta njuni velikosti datotek enaki. To je uporabno, če operacija kopiranja datoteke ni ohranila datuma spremembe. To možnost uporabljajte previdno. Privzeto je izklopljeno.
- Sinhronizirajte mape
Aktivira sinhronizacijski način, ko se primerjata dve mapi in ni bila določena izrecna ciljna mapa. V tem načinu bodo predlagane operacije izbrane tako, da sta obe izvorni mapi pozneje enaki. Tudi rezultat združevanja bo zapisan v obe mapi. Privzeto je izklopljeno.
- Kopiraj novejše namesto združevanja (nevarno)
Namesto združevanja bo predlagana operacija kopirala novejši vir, če pride do sprememb. (Šteje za nevarno, ker pomeni, da veste, da tudi druga datoteka ni bila urejena. V vsakem primeru preverite, da se prepričate.) Privzeto je izklopljeno.
- Varnostne kopije datotek (.orig)
Če je datoteka ali celotna mapa zamenjana z drugo ali je izbrisana, bo prvotna različica preimenovana s pripono
.orig. Če stara datoteka varnostne kopije s končnico.origže obstaja, bo ta izbrisana brez varnostne kopije. To vpliva tudi na običajno združevanje posameznih datotek, ne samo v načinu združevanja map. Privzeto je vklopljeno.
Običajno pogled seznama z združevanjem map ostane viden, medtem ko se ena datoteka primerja ali združuje. Z miško lahko premikate razdelilno vrstico, ki ločuje seznam datotek od oken za razlikovanje besedila. Če tega ne želite, lahko onemogočite → . Nato lahko uporabite element menija → , da preklapljate med seznamom datotek in pogledom besedilne razlike, ki nato zavzameta celoten zaslon.
Verjetno vam bo ljubši preprost dvojni klik na datoteko, da jo primerjate. Kljub temu obstaja tudi vnos v meniju . Posamezno datoteko lahko tudi neposredno združite tako, da jo izberete in izberete menijsko postavko → . Ko shranite rezultat, bo status nastavljen na dokončano in datoteka ne bo ponovno združena, če se začne združevanje map.
Vendar upoštevajte, da bodo te informacije o stanju izgubljene, ko znova zaženete prečesavanje mape: →
Včasih morate primerjati ali združiti datoteke z različnimi imeni (npr. trenutno datoteko in varnostno kopijo v isti mapi).
Izberite točno datoteko s klikom na ikono v stolpcu A, B ali C. Tako izbrana prva datoteka bo označena z A, druga in tretja pa z B in C ne glede na to, v katerem stolpcu sta. tako lahko izberete do tri datoteke.
Nadaljujte z izbiro → ali → element menija. Za vaše udobje se ti vnosi menija prikažejo tudi kot kontekstni meni, ko z desno miškino tipko kliknete zadnjo izbrano datoteko.
Primerjava ali združitev datoteke se bo zgodila v istem oknu. Če ta način uporabite za mape, se odpre novo okno.
Knjižnica KIO iz Frameworks podpira preglednost omrežja prek podrejenih KIO. KDiff3 uporablja to za branje vhodnih datotek in za preiskovanje map. To pomeni, da lahko določite datoteke in mape na lokalnih in oddaljenih virih prek URLs.
Primer:
kdiff3 test.cpp ftp://ftp.faraway.org/test.cpp kdiff3 tar:/home/hacker/archive.tar.gz/folder ./folder
Prva vrstica primerja lokalno datoteko z datoteko na FTP strežniku. Druga vrstica primerja mapo znotraj stisnjenega arhiva z lokalno mapo.
Drugi KIO-sužnji, ki so zanimivi, so:
Datoteke iz WWW (http:),
Datoteke iz FTP (ftp:),
Šifriran prenos datotek (fish:, sftp:),
Windows® viri (smb:),
Lokalne datoteke (datoteka:),
Druge stvari, ki so možne, a verjetno manj uporabne, so:
Man-strani (man:),
Info-strani (info:),
URL ima drugačno sintakso v primerjavi s potmi za lokalne datoteke in mape. Nekaj stvari je treba upoštevati:
Pot je lahko relativna in lahko vsebuje "." ali "..". To ni mogoče za URL, ki so vedno absolutni.
Posebni znaki morajo biti zapisani s "pobegom". ("
#" -> "%23", presledek ->"%20", itd.) Npr. datoteka z imenom "#foo#" bi imela URL "datoteka:/%23foo%23".Ko URL-ji ne delujejo po pričakovanjih, jih poskusite najprej odpreti v Konqueror.
Preglednost omrežja ima eno pomanjkljivost: vsi viri nimajo enakih zmogljivosti.
Včasih je to posledica datotečnega sistema strežnika, včasih zaradi protokola. Tukaj je kratek seznam omejitev:
Včasih ni podpore za povezave.
Ali pa ni mogoče razločiti, ali povezava kaže na datoteko ali mapo; vedno predpostavlja datoteko. (ftp:, sftp:).
Velikosti datoteke ni mogoče vedno določiti.
Omejena podpora za dovoljenja.
Ni možnosti spreminjanja dovoljenj ali časa spreminjanja, zato se bodo dovoljenja ali čas kopije razlikovali od izvirnika. (Glejte možnost Zaupajte velikosti (nevarno).) (Spreminjanje dovoljenj ali časa spreminjanja je možno samo za lokalne datoteke.)
KDiff3 se lahko uporablja kot Git orodje za razlikovanje in spajanje.
Samo dodajte naslednje vrstice v datoteko gitconfig.
[diff]
tool = kdiff3
[difftool "kdiff3"]
path = <path to kdiff3 binary in your system>
[difftool]
prompt = false
keepBackup = false
trustExitCode = false
[merge]
tool = kdiff3
[mergetool]
prompt = false
keepBackup = false
keepTemporaries = false
[mergetool "kdiff3"]
path = <path to kdiff3 binary in your system
>
Če želite nato videti razliko med dvema objavama, uporabite git difftool first_hash second_hash --tool=kdiff3 --cc some_file_in_the_git_tree
Za združitev veje z KDiff3 uporabite git merge branch_name && git mergetool --tool=kdiff3
Po razrešitvi sporov pri združevanju na običajen način je dovolj, da odobrite spremembe, da opravite delo.
- 5.1. Zakaj se imenuje "KDiff3"?
- 5.2. Zakaj sem ga izdal pod GPL?
- 5.3. Nekateri gumbi in funkcije manjkajo. Kaj je narobe?
- 5.4. Pogosto se vrstice, ki so podobne, vendar ne enake, pojavijo ena poleg druge, včasih pa tudi ne. Zakaj?
- 5.5. Zakaj je treba rešiti vse spore, preden je mogoče shraniti rezultat spajanja?
- 5.6. Kako lahko sinhroniziram pogled razlik in združevanja, tako da vsi pogledi prikazujejo isti položaj besedila?
- 5.7. Zakaj git difftool --dir-diff pri uporabi KDiff3 kot difftool prikaže "Napaka mešanice povezav in običajnih datotek"?
- 5.8. Zakaj urejevalnik v oknu z rezultati spajanja nima funkcije "razveljavi"?
- 5.9. Ko sem odstranil nekaj besedila, se je nenadoma pojavilo "<Ni izvorne vrstice>" in ga ni mogoče izbrisati. Kaj to pomeni in kako to odstraniti?
- 5.10. Zakaj KDiff3 ne podpira označevanje sintakse?
- 5.11. Ali lahko uporabim KDiff3 za primerjavo LibreOffice/OpenOffice.org®, Microsoft® Word, Microsoft® Excel, PDF, itd.. datotek?
- 5.12. Kam je izginila možnost mape Seznam samo razlik?
- 5.13. Kako lahko naredim velik izbor v oknu za vnos razlike, ker drsenje traja tako dolgo?
- 5.14. Tukaj je toliko informacij, a na vaše vprašanje še vedno ni odgovora?
5.1. | Zakaj se imenuje "KDiff3"? |
Orodja z imenom KDiff in KDiff2 (zdaj imenovana Kompare) že obstajata. Tudi KDiff3 bi moralo predlagati, da se lahko združi kot orodje diff3 v zbirki Diff-Tool. | |
5.2. | Zakaj sem ga izdal pod GPL? |
Programe GPL uporabljam že zelo dolgo in sem se veliko naučil, ko sem si ogledal številne vire. Zato je to moja "hvala" vsem programerjem, ki so prav tako storili ali bodo storili enako. | |
5.3. | Nekateri gumbi in funkcije manjkajo. Kaj je narobe? |
Prevedli ste iz izvorne kode, vendar verjetno niste navedli pravilne predpone za namestitev. Privzeto cmake želi namestiti v | |
5.4. | Pogosto se vrstice, ki so podobne, vendar ne enake, pojavijo ena poleg druge, včasih pa tudi ne. Zakaj? |
Vrstice, kjer je različna le količina presledkov, se najprej obravnavajo kot "enake", medtem ko samo en drugačen nebel znak povzroči, da so vrstice "različne". Če se podobne črte pojavljajo druga zraven druge, je to pravzaprav naključje, vendar je na srečo pogosto tako. Glejte tudi Pomoč za ročno razlikovanje. | |
5.5. | Zakaj je treba rešiti vse spore, preden je mogoče shraniti rezultat spajanja? |
Za vsak enak ali različen razdelek si urejevalnik v oknu rezultatov združevanja zapomni, kje se začne ali konča. To je potrebno, da se spori lahko rešijo ročno s preprosto izbiro gumba vira (A, B ali C). Te informacije se med shranjevanjem kot besedilo izgubijo in ustvarjanje posebnega formata datoteke, ki podpira shranjevanje in obnavljanje vseh potrebnih informacij, je preveč naporno. | |
5.6. | Kako lahko sinhroniziram pogled razlik in združevanja, tako da vsi pogledi prikazujejo isti položaj besedila? |
Kliknite na stolpec s povzetkom levo od besedila. (Glejte tudi tukaj.) | |
5.7. | Zakaj |
To je stranski učinek notranjega delovanja gita. Če poskušate primerjati prejšnjo revizijo s trenutnim delovnim drevesom, bo git dejansko primerjal datoteke, ki predstavljajo preteklo objavo, s simbolnimi povezavami, ki kažejo na delovno drevo. Od 1.9 dalje ima KDiff3 privzeto vključeno Sledi povezavam datotek in Sledi povezavam map. Pred tem so bili privzeto izklopljeni. To ni bilo pomembno, če ne delate, če je bila tudi "Popolna analiza" izklopljena. Vendar bi s Popolno analizo na KDiff3 sprva poskušal primerjati pot, na katero kaže povezava, namesto da bi ji sledil. Pred 1.8 je bila nastala napaka prezrta. Vendar je 1.8 začel poročati o napaki. | |
5.8. | Zakaj urejevalnik v oknu z rezultati spajanja nima funkcije "razveljavi"? |
To je bil do sedaj preveč truda. Vedno lahko obnovite različico iz enega vira (A, B ali C), tako da kliknete ustrezni gumb. Za veliko urejanja je vseeno priporočljiva uporaba drugega urejevalnika. | |
5.9. | Ko sem odstranil nekaj besedila, se je nenadoma pojavilo "<Ni izvorne vrstice>" in ga ni mogoče izbrisati. Kaj to pomeni in kako to odstraniti? |
Za vsak enak ali različen razdelek si urejevalnik v oknu rezultatov spajanja zapomni, kje se začne ali konča. "<Ni izvorne vrstice>" pomeni, da v razdelku ni več ničesar, niti znaka za novo vrstico. To se lahko zgodi med samodejnim združevanjem ali z urejanjem. To ni problem, saj se ta namig ne bo pojavil v shranjeni datoteki. Če želite nazaj izvirni vir, preprosto izberite razdelek (kliknite levi stolpec s povzetkom) in nato kliknite gumb vira s potrebno vsebino (A/B ali C). | |
5.10. | Zakaj KDiff3 ne podpira označevanje sintakse? |
KDiff3 že uporablja veliko barv za poudarjanje razlik. Več poudarjanja bi bilo zmedeno. Za to uporabite drug urejevalnik. | |
5.11. | Ali lahko uporabim KDiff3 za primerjavo LibreOffice/OpenOffice.org®, Microsoft® Word, Microsoft® Excel, PDF, itd.. datotek? |
Čeprav KDiff3 bo analiziral katero koli vrsto datoteke, rezultat za vas verjetno ne bo zelo zadovoljiv. KDiff3 je bil narejen za primerjavo čistih besedilnih datotek. LibreOffice/ OpenOffice.org®, Microsoft® Word, Microsoft® Excel > itd.. shrani veliko več informacij v datoteke (o pisavah, slikah, straneh, barvah itd.), ki jih KDiff3 ne pozna. Torej KDiff3 vam bo prikazal vsebino datoteke, interpretirano kot čisto besedilo, vendar je to morda neberljivo ali pa bo vsaj videti zelo čudno. Ker večina današnjih programov shranjuje svojo vsebino v XML formatu, ga boste morda lahko prebrali kot čisto besedilo. Torej, če je bila sprememba le majhna, vam KDiff3 še vedno lahko pomaga. Najboljša rešitev, če želite primerjati samo besedilo (brez vdelanih predmetov, kot so slike), je uporaba → in → menijske elemente v vašem programu, da kopirate zanimivo besedilo v odložišče in nato v KDiff3 prilepite besedilo v katero koli okno za vnos razlike. (Glejte tudi Izberi, kopiraj in prilepi.) | |
5.12. | Kam je izginila možnost mape ? |
Zdaj je na voljo več možnosti »Pokaži« v meniju . Če onemogočite , boste dosegli tisto, kar je prej omogočalo . | |
5.13. | Kako lahko naredim velik izbor v oknu za vnos razlike, ker drsenje traja tako dolgo? |
Zaženite izbiro kot običajno (kliknite in držite mouse button). Nato uporabite navigacijske tipke (npr. PgUp, PgDn), medtem ko držite mouse button navzdol. (Glejte tudi Izberi, kopiraj in prilepi.) | |
5.14. | Tukaj je toliko informacij, a na vaše vprašanje še vedno ni odgovora? |
Prosim, pošljite mi svoje vprašanje. Cenim vsak komentar. |
KDiff3 - Orodje za primerjavo in združevanje datotek in map
Avtorske pravice za program 2002-2007 Joachim Eibl (joachim.eibl na gmx.de)
Nekaj odličnih idej in poročil o napakah je prišlo od kolegov in mnogih ljudi iz Wild Wild Weba. Hvala vam!
Dokumentacija Copyright (c) 2002-2007 Joachim Eibl (joachim.eibl na gmx.de)
Dokumentacija Copyright (c) 2017-2019 Michael Reeves (reeves.87 na gmail.com)
Prevod: Matjaž Jeran(matjaz.jeran AT amis.net)
Dokumentacija je objavljena pod pogoji GNU Free Documentation License.
Pogoji uporabe programa so določeni v GNU General Public License.