Search code examples
gitreferencecomvb6normalization

Git and VB6 - References Normalization


VB6 Project files (*.vbp) store referenced *.dll and *.ocx GUIDs ie:

Reference=*\G{5F1C5FFC-C9D6-11D3-B573-00A04B03B18A}#1.0#0#..\SomeLib.dll#SomeLib 1.0 Type Library
Object={D27CDB6B-AE6D-11CF-96B8-444553540000}#1.0#0; SomeControls.ocx

Each time a developer breaks compatibility the recompiled libraries change their GUID and the updated GUIDs are stored on the project files that reference those libraries.

These are inocuous changes that introduce a lot of noise for a developer when checking which files should or shouldn't be included on a commit.

If I have regexp that normalizes the Project files references, how can I use it to make git ignore these differences on git status or git diff so that files are not uselessly updated?


Solution

  • Ultimately I went he opposite way. Instead of trying to make git ignore the changes, a merge-driver can be used to handle all the merging conflicts.

    I built a small vb6-merge-driver that focuses on minimizing the amount of merging conflicts, resolving them with a "take-ours" strategy to preserve the GUIDs.

    One should just be careful that merging the GUIDs aren't replaced on a merge ff.