Forum » Programiranje » diff tool, ki ignorira white space?
diff tool, ki ignorira white space?
MrStein ::
Je kaki diff/compare tool, ki ignorira white space?
Torej da spremembe tipa "dodan presledek", "vrstica razbita na dve" in podobno NE označi kot spremembo.
Veliko programov ima opcijo "ignore white space" ampak je zelo omejena.
Recimo že tole noben, ki sem ga probal, ne ignorira:
>>>>
Najbližje od teh, ki sem jih našel, je SourceGear DiffMerge. Zgornji primer obvlada, a le, če je fajl specifično tipa .java (in verjetno C, nisem testiral). A označi za spremenjeno, če se "a=b" spremeni v "a = b". Se verjetno da potweakati, ker ima program ogromno opcij in možnost custom rule-ov.
A obstaja tool, ki obvlada to "po defaultu" ? Torej da res ne šteje sprememb v white space kot spremembe?
Torej da spremembe tipa "dodan presledek", "vrstica razbita na dve" in podobno NE označi kot spremembo.
Veliko programov ima opcijo "ignore white space" ampak je zelo omejena.
Recimo že tole noben, ki sem ga probal, ne ignorira:
void foo(){ int a;
>>>>
void foo() { int a;
Najbližje od teh, ki sem jih našel, je SourceGear DiffMerge. Zgornji primer obvlada, a le, če je fajl specifično tipa .java (in verjetno C, nisem testiral). A označi za spremenjeno, če se "a=b" spremeni v "a = b". Se verjetno da potweakati, ker ima program ogromno opcij in možnost custom rule-ov.
A obstaja tool, ki obvlada to "po defaultu" ? Torej da res ne šteje sprememb v white space kot spremembe?
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
XyNOBvxWVJ ::
To je tako osnoven feature, da ima skoraj vsak razširjen normalen merge tool ima setting 'ignore whitespaces' samo najti je potrebno.
c3p0 ::
To ni le diff oz. white space razlika, v tem primeru rabiš že tool, ki zna parsat jezik in ignorira spremembe v code formattingu.
Invictus ::
Zanic code practice imas, ce ga sploh imas, zato so problemi...
"Life is hard; it's even harder when you're stupid."
http://goo.gl/2YuS2x
http://goo.gl/2YuS2x
XyNOBvxWVJ ::
Ne vem, kaj Mr uporablja in za koga dela pri reševanju merge konfliktov, ampak pri meni že Community tool podpirajo v smislu...
Normalno pa je tudi, da je formatiranje kode formalizirano.
Mr, samo zate:
Whitespace
Define how the differences viewer should treat whitespaces.
Do not ignore: white spaces are important, and all the differences are highlighted. This option is selected by default.
Trim whitespaces: trim whitespaces if they appear in the end and at the beginning of a line (("\t", " ")).
If two lines differ in trailing whitespaces only, these lines are considered equal.
If two lines are different, trailing whitespaces are not highlighted in the By word mode.
Ignore whitespaces: white spaces are not important, regardless of their location in the source code.
Ignore whitespaces and empty lines: ignores whitespaces and empty lines. The following entities are ignored:
all whitespaces (as in the 'Ignore whitespaces' option)
all added or removed lines consisting of whitespaces only
all changes consisting of splitting or joining lines without changes to non-whitespace parts.
For example, differences between a b c and a \n b c are not highlighted in this mode.
Ignore imports and formatting: changes within import statements and whitespaces are ignored (whitespaces within String literals are respected though).
Normalno pa je tudi, da je formatiranje kode formalizirano.
Do not ignore Trim whitespaces Ignore whitespaces Ignore whitespaces and empty lines Ignore imports and formatting
Mr, samo zate:
Whitespace
Define how the differences viewer should treat whitespaces.
Do not ignore: white spaces are important, and all the differences are highlighted. This option is selected by default.
Trim whitespaces: trim whitespaces if they appear in the end and at the beginning of a line (("\t", " ")).
If two lines differ in trailing whitespaces only, these lines are considered equal.
If two lines are different, trailing whitespaces are not highlighted in the By word mode.
Ignore whitespaces: white spaces are not important, regardless of their location in the source code.
Ignore whitespaces and empty lines: ignores whitespaces and empty lines. The following entities are ignored:
all whitespaces (as in the 'Ignore whitespaces' option)
all added or removed lines consisting of whitespaces only
all changes consisting of splitting or joining lines without changes to non-whitespace parts.
For example, differences between a b c and a \n b c are not highlighted in this mode.
Ignore imports and formatting: changes within import statements and whitespaces are ignored (whitespaces within String literals are respected though).
Zgodovina sprememb…
- spremenilo: XyNOBvxWVJ ()
eventyrer ::
Je kaki diff/compare tool, ki ignorira white space?
Torej da spremembe tipa "dodan presledek", "vrstica razbita na dve" in podobno NE označi kot spremembo.
Veliko programov ima opcijo "ignore white space" ampak je zelo omejena.
Recimo že tole noben, ki sem ga probal, ne ignorira:
void foo(){
int a;
>>>>
void foo()
{
int a;
Najbližje od teh, ki sem jih našel, je SourceGear DiffMerge. Zgornji primer obvlada, a le, če je fajl specifično tipa .java (in verjetno C, nisem testiral). A označi za spremenjeno, če se "a=b" spremeni v "a = b". Se verjetno da potweakati, ker ima program ogromno opcij in možnost custom rule-ov.
A obstaja tool, ki obvlada to "po defaultu" ? Torej da res ne šteje sprememb v white space kot spremembe?
v orodju "MELD" se da to nastaviti.
Najbrž se da nastaviti tudi v Visual Studio Code.
Zgodovina sprememb…
- spremenil: eventyrer ()
c3p0 ::
Lahko pa oba fajla, ki ju želiš primerjati spustiš skozi nek code formatter in nato diff-aš.
MrStein ::
Lahko pa oba fajla, ki ju želiš primerjati spustiš skozi nek code formatter in nato diff-aš.
Lahko, ampak ko primerjaš celotna drevesa, to početi za vsakega, sploh, če je v formatu, za katerega nimaš formaterja...
Saj se da. Enako kot brez računalnika narediti vse. Le dlje traja.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
one-half ::
Je kaki diff/compare tool, ki ignorira white space?
https://www.araxis.com/merge/index.en
Samo ne se navlect na njega, boh ne daj, da z njim kaj mergas, ker se bos kasneje pocutil, kot bi ti kdo roke polomil. Cez 30 dni postane svinjsko drag. Kar je skoda, bi ga sicer takoj kupil (ranga 100 eurov jim dam, 200+ za three-way merge, naj si pa nekam zataknejo), tako je pa... kh... kh... treba sem in tja... kh... kh... odpakirati in kaksen byte ali malo vec popravit na 0x90...
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Zgodovina sprememb…
- spremenil: one-half ()
MrStein ::
v orodju "MELD" se da to nastaviti.
Kako?
Sem vklopil vse filtre, pa za podan primer kaže:
Torej ne ignorira te spremembe, ki je zgolj white space.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
c3p0 ::
Lahko pa oba fajla, ki ju želiš primerjati spustiš skozi nek code formatter in nato diff-aš.
Lahko, ampak ko primerjaš celotna drevesa, to početi za vsakega, sploh, če je v formatu, za katerega nimaš formaterja...
Saj se da. Enako kot brez računalnika narediti vse. Le dlje traja.
Je ena opcija. S kratko skriptico (par minut dela) ti primerja tudi celotno drevo. Odvisno od potreb, uporabiš, ali pa ne uporabiš.
GupeM ::
Nemogoče.
Kako naj diff tool ve, ali gre za takšen primer, ali za C kodo? Primer:
To je razlika, ki C-ju res nič ne pomeni, HTML-ju pa. Lahko je za uporabnika velika razlika, če gre za tutorial o tem, kako lahko delaš bloke v C-ju.
Kako naj diff tool ve, ali gre za takšen primer, ali za C kodo? Primer:
<pre> void foo(){ int a; </pre>
<pre> void foo() { int a; </pre>
To je razlika, ki C-ju res nič ne pomeni, HTML-ju pa. Lahko je za uporabnika velika razlika, če gre za tutorial o tem, kako lahko delaš bloke v C-ju.
Zgodovina sprememb…
- spremenil: GupeM ()
MrStein ::
Nepomembno.
Iščem tool, ki ignorira white space. Vključno z newline.
Iščem tool, ki ignorira white space. Vključno z newline.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
eventyrer ::
v orodju "MELD" se da to nastaviti.
Kako?
Sem vklopil vse filtre, pa za podan primer kaže:
Torej ne ignorira te spremembe, ki je zgolj white space.
Skrajno levo v EDITOR sekciji imaš show whitespace. Ali to rabiš?
AJA ne, sori, ti rabiš v sekciji TEXT FILTERS obkljukati recimo "ALL WHITESPACE".
Tiste zgornje opcije "trim blank line" jaz nimam obkljukane.
Zgodovina sprememb…
- spremenil: eventyrer ()
predi ::
OP, to, da orodja, ki si jih našel, obstajajo samo za specifične jezike, je pričakovano. Diff, ki ga ti iščeš, je pogojen z gramatiko konkretnega jezika, ker dejansko iščeš parse tree diff, ignorirati pa najbrž želiš zgolj nepomemben whitespace za konkretni jezik, ne vsega. Že to ali je newline sploh tretiran kot whitespace, je pogojeno z gramatiko jezika. Noben line-based text differ ti pri arbitrarnem jeziku ne bo pomagal na zanesljiv način, sploh pa ne z default nastavitvami.
GupeM ::
MrStein ::
OP, to, da orodja, ki si jih našel, obstajajo samo za specifične jezike, je pričakovano.
Ne, iščem orodje, ki dela "IF change_is_only_NL() THEN ignore()".
Neodvisno od vsebine ali formata.
Preanalizirate. Rabim točno to enostavno zadevo, katero sem napisal. Ne rabim AI, ki bi zraven še rešil svet.
Enako, kot GNU diff ima opciji:
-i, --ignore-case ignore case differences in file contents -b, --ignore-space-change ignore changes in the amount of white space
Ja, v nekaterih jezikih so te spremembe pomembne. Ampak orodje ima in ponuja te opcije in uporabnik jih lahko uporabi. Če želi. Če ne, pa pač ne.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Zgodovina sprememb…
- spremenil: MrStein ()
MrStein ::
AJA ne, sori, ti rabiš v sekciji TEXT FILTERS obkljukati recimo "ALL WHITESPACE".
Tiste zgornje opcije "trim blank line" jaz nimam obkljukane.
Ne, ne dela.
Če odkljukam "All whitespace", potem pokaže še zadnjo vrstico kot spremenjeno. Ampak prvo vrstico/dve vedno kaže kot spremenjeno, ne glede na opcije.
PS: Compare v IDEA pa je skoraj tak, kot iščem. Z opcijo "Ignore whitespaces and empty lines" lepo zgornji primer pokaže kot "brez sprememb".
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
XyNOBvxWVJ ::
MrStein ::
Bi prišli do tega hitreje, če bi v prejšnjem sporočilu omenil, da govoriš o IDEA
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
XyNOBvxWVJ ::
eventyrer ::
AJA ne, sori, ti rabiš v sekciji TEXT FILTERS obkljukati recimo "ALL WHITESPACE".
Tiste zgornje opcije "trim blank line" jaz nimam obkljukane.
Ne, ne dela.
Če odkljukam "All whitespace", potem pokaže še zadnjo vrstico kot spremenjeno. Ampak prvo vrstico/dve vedno kaže kot spremenjeno, ne glede na opcije.
PS: Compare v IDEA pa je skoraj tak, kot iščem. Z opcijo "Ignore whitespaces and empty lines" lepo zgornji primer pokaže kot "brez sprememb".
čudno ker sem ravnokar probal in meni meld deluje čudovito. Sem naredil white space na koncu vrstice in pa eno prazno vrstico za test.
MELD je oboje lepo ignoriral.
Sem pa obkljukal zgolj ALL WHITESPACE, tisto zgoraj (trim) nisem.
Ampak prvo vrstico/dve vedno kaže kot spremenjeno, ne glede na opcije.
ja pa saj prvi dve vrstici si dejansko spremenil, tam ni nobenega whitespace označenega.
New line ti je označilo kar je zelo pravilno. White space so izključno samo presledki in prazne vrstice.
edit.:
glej ga zlomka, imaš prav. Newline je tudi lahko smatran kot white-space. Nisem vedel.
Whitespace character @ Wikipedia
Tu ti žal ne znam pomagati.
Zgodovina sprememb…
- spremenil: eventyrer ()
predi ::
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Excel stolpec vejicaOddelek: Pomoč in nasveti | 1302 (1006) | sloxl8 |
» | Trdovratne težave v HTML/CSS-ju (strani: 1 2 )Oddelek: Programiranje | 8680 (6658) | joker16_7 |
» | meni razporejen po celotni dolžiniOddelek: Izdelava spletišč | 2274 (2142) | XzupanX |
» | poravnava li elementovOddelek: Izdelava spletišč | 2179 (2044) | boss-tech |
» | [c#] string.TrimOddelek: Programiranje | 1326 (1272) | darkolord |