Some positive points about using LibXDiff:
- active community / development (part of Git)
- optimized (Git developers care a lot about speed!)
- offers stable API
- API wants memory buffers
- (I think) pretty easy partial file compares
- patch creation / applying
- no diffutils-like ignore options
- generated patches in "git" format
- API might be a bit tricky
- API manages its own buffers for data - we easily end up with the existing problem of buffering same data many times
If I have time I may try to do very simple folder compare program in next weeks. Just check if files are identical or not and offer very simple GUI for that. With LibXDiff and Qt this is few days of work.
One big thing is ignoring of text case and whitespace which is what current WinMerge users are so used to. There is no such options in LibXDiff. But as mentioned already above we just need to implement them ourselves. I think this is actually an advantage. There is lot of confusion about how current whitespace ignoring works. So we can implement a bit more sane whitespace ignore from user point of view. Of course it must be some kind of filtering layer orver LibXDiff allowing line filtering and whatever. But in principle I think it will be a lot easier than with diffutils.