Filtrera ut text

Vid jämförelse av flera filer kan du ha textavsnitt där skillnader inte är viktiga. Till exempel kanske du vill fokusera på ändrade avsnitt i kod, och ignorera ändringar i kommentarsrader. Med textfilter kan du säga åt Meld att ignorera text som matchar ett visst mönster (d.v.s. ett reguljärt uttryck) när skillnader mellan filer visas.

Textfilter påverkar inte bara filjämförelser, utan också mappjämförelser. Se anteckningar om filfiltrering för fler detaljer.

Lägga till och använda textfilter

Du kan slå på eller av textfilter från fliken Textfilter i dialogen Inställningar. Meld kommer med några enkla filter du kanske finner användbara, men du kan lägga till dina egna också.

I Meld är textfilter reguljära uttryck som matchas mot texten i de filer du jämför. Matchad text ignoreras vid jämförelsen; du kommer fortfarande att se texten i jämförelsevyn, men den kommer inte att tas med när skillnader ska hittas. Textfilter verkställs i ordning, så det är möjligt för det första filtret att ta bort text som gör att det andra filtret nu matchar och så vidare.

Om du inte är bekväm med reguljära uttryck kan du behöva kolla upp Pythons Regular Expression HOWTO.

Skriva korrekta textfilter

Det är lätt att få textfilter felaktiga, och Melds stöd för filtrering är inte fullständigt. Specifikt så kan ett textfilter inte ändra antalet rader i en fil. Till exempel, om vi hade det inbyggda Skriptkommentar-filtret aktiverat och jämförde följande filer:

kommentar1.txt

a
b#kommentar
c
d

kommentar2.txt

a
b
c
#kommentar

kommer sedan raderna som börjar med b att visas som identiska (kommentaren är borttagen) men raden d kommer att visas som att den skiljer sig åt mot kommentarsraden till höger. Det beror på att #kommentar tas bort från den högra sidan, men att själva raden inte kan tas bort; Meld kommer att visa raden d som annorlunda mot vad det ser som en tom rad på andra sidan.

Tomma rader och filter

Inställningen Ignorera ändringar som infogar eller tar bort tomma rader i fliken Textfilter kräver en särskild förklaring. Om detta specialfilter är aktiverat kommer varje ändring bestående av tomma rader att helt ignoreras. Det kan också inträffa eftersom det var en faktisk blankteckenändring i texten, men kan också uppstå om dina aktiva textfilter har tagit bort allt det andra innehållet från en ändring och bara lämnar kvar tomma rader.

Du kan använda detta alternativ till att komma runt några av problemen och begränsningarna som beror på att filter inte kan ta bort hela rader, men det kan också vara användbart i sig självt.