yes, i built this to solve that problem: https://github.com/khimaros/freecad-build
Re:Versioning FreeCAD Files with Git
by ecjhdnc2025 on Wednesday June 19, 2024 @09:49PM
(#40734122)
This is very interesting work; I need to dig in on it. Thank you!
Which visual differences are occluded depending on the design and CAD software parameters?
If [FreeCAD] files are text-diffable, is there a way to topologically sort (with secondary insertion order) before git committing with e.g. precommit?
python has a sort_keys parameter for serialization, in order to alphabetically sort sibling nodes in nested datastructures; which makes it easier to diff json documents that have different key orderings but otherwise equal content.
Is there a diff tool for FreeCAD?
nbdime: https://nbdime.readthedocs.io/en/latest/#git-integration-qui... :
> Git doesn’t handle diffing and merging notebooks very well by default, but you can configure git to use nbdime:
Oh, zippey, for zip archives of text files in git: https://bitbucket.org/sippey/zippey/src/master/Are there tools to test/validate a FreeCAD model to check for regressions over a range of commits?
git bisect might then be useful with FreeCAD models; https://www.git-scm.com/docs/git-bisect :
> This command uses a binary search algorithm to find which commit in your project’s history introduced a bug. You use it by first telling it a "bad" commit that is known to contain the bug, and a "good" commit that is known to be before the bug was introduced. Then git bisect picks a commit between those two endpoints and asks you whether the selected commit is "good" or "bad". It continues narrowing down the range until it finds the exact commit that introduced the change.
FWIW, LEGO Bricktales does automated design validation as part of the game. Similarly, what CI job(s) run when commits are pushed to a Pull Request git branch?