xcodexibfilemerge

FileMerge showing wrong content for XIB files


When FileMerge compares XIB files, the displayed contents are completely different from the actual contents. Instead of an interface builder document (the root is <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" ...>), FileMerge shows plists (the first key is "com.apple.ibtool.document.classes"). Why is this? Can FileMerge work with XIB files, and, if so, how?


Solution

  • FileMerge filters some files, based on extension. XIB are run through ibtool (which appears in the first key in the plist).

    To disable (which is recommended over deleting):

    1. In FileMerge, open preferences (FileMerge ā†’ Preferences, or āŒ˜,)
    2. Open the "Filters" tab
    3. Double-click on the "xib" cell in the "Extension" column.
    4. Alter the entry (e.g. append "_") so the filter won't match XIB files.

    Note the "Display" column cells are toggles; clicking on them will switch between "Filtered" and "Original". However, an attempt to disable the "xib" filter by switching to "Original" resulted in the error:

    Filter $(DEVELOPER_BIN_DIR)/ibtool --all $(FILE) is not working properly. The number of newlines cannot change as a result of filtering.