Archived Beta Discussions > SlickEdit 2013 v18 beta

Diffzilla builds file list from excluded directories

(1/2) > >>

When doing a recursive diff between two folders, Diffzilla seems to be scanning the files in a directory listed in the "Exclude filespecs" list. Specifically, I see this with .git/. There are loads of files there, none of which are relevant, but the display shows them during the scan. The files don't seem to be compared, but the list building step takes longer than necessary, especially if the filesystem is remote (e.g. mounted with sshfs). It should be possible to skip everything under the matching directory name.

Since we can build the list with multiple wildcards, we scan everything, then filter by the multiple wildcards.  So you will see things zoom by that you excluded or don't have anything to do with what you specified.

I understand the issue. Unfortunately, when working with a remote file system over a VPN, they don't 'zoom by', more like 'stagger by'. In my case, it takes 90 secs just to build the file list. The actual diff goes much quicker. It would be nice if the algorithm were a bit smarter, at least in a simple case, so that remote workflows were more efficient.

We studied the problem pretty thoroughly when we switched to using this method.  Since we support multiple filespecs, we would have to do the list for each wildcard.  It is usually faster to list everything and then filter the list.

The plan for v19 is to have completely new code for traversing trees of files and specifying excludes. Directories that are excluded will NOT be traversed and only one pass will be necessary even if multiple wildcards and excludes are specified. Also, v19 will support a super set of ant syntax. That is, you will be able to write "**/backup/**" to exclude a directory, or you can write "backup/" to exclude a directory. You will also be able to specify wildcards like the "**/somedir/t*/*.cpp".


[0] Message Index

[#] Next page

Go to full version