As a frequent user of Obsidian’s Canvas, I wanted to track every change made to my canvas files. To achieve this, I set up Git to automatically commit changes every minute. However, I quickly realized that using Git to track changes in canvas files is almost impractical. Even a simple action like typing a single character often causes the entire file structure to change. As a result, the diff view is flooded with large amounts of green and red changes, making it difficult to see what was actually modified.
P.S. Of course, I understand that the core problem is not Git itself, but rather the diff comparison software.
It’s been a while since I used such tools, but I do believe there exist specialised diff tools for json files, which should be able to present diffs for a canvas file slightly better.
This do depend on a presumption that the overall structure of the json canvas file doesn’t change when you do a change in the content. Not sure if that is a valid presumption.
I’ve tried several external diff tools, but they’re still mostly unusable. For example, changes in the position of cards (though I’m not sure what causes these position changes) result in a large number of differences, making it nearly unreadable.
In fact, I only care about whether the content I’ve written is intact, and I’m not concerned about the position or even the ID information of the cards