20 ms·
As text/code-based formats, e g. cadquery and the newer build123d work with text-based VCS systems like git. Is there a diff tool for FreeCAD? nbdime: https:
by westurner 2y ago
As text/code-based formats, e g. cadquery and the newer build123d work with text-based VCS systems like git.
Is there a diff tool for FreeCAD?
nbdime: https://nbdime.readthedocs.io/en/latest/#git-integration-quickstart 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:
nbdime config-git --enable --global
Oh, zippey, for zip archives of text files in git: https://bitbucket.org/sippey/zippey/src/master/ 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 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?
- khimaros 2y agoyes, i built this to solve that problem: https://github.com/khimaros/freecad-build https://github.com/khimaros/freecad-build
- westurner 2y agoWhich 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.
- ecjhdnc2025 2y agoThis is very interesting work; I need to dig in on it. Thank you!