Recommendations for Version Control
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
Be nice to others! Read the FreeCAD code of conduct!
Recommendations for Version Control
Hi all,
I'm chief designer on a development project that has a number of separate components, for each of which there are of course multiple iterations of design, and within a drawing, we track changes in the traditional way. However, what's becoming increasingly difficult is tracking design iterations of multiple design forks we're experimenting with, such as going back to revision N and developing a new branch based on that.
In my days in software development, version control systems such as CVS were in use, but I can't find anything that does the same job with CAD files. We don't really need to merge files (as with source code), but to track the status of the design, catalogue the files, etc.
Can anyone recommend (preferably GUI) software for this?
Thanks
Edwin
I'm chief designer on a development project that has a number of separate components, for each of which there are of course multiple iterations of design, and within a drawing, we track changes in the traditional way. However, what's becoming increasingly difficult is tracking design iterations of multiple design forks we're experimenting with, such as going back to revision N and developing a new branch based on that.
In my days in software development, version control systems such as CVS were in use, but I can't find anything that does the same job with CAD files. We don't really need to merge files (as with source code), but to track the status of the design, catalogue the files, etc.
Can anyone recommend (preferably GUI) software for this?
Thanks
Edwin
Re: Recommendations for Version Control
You can use CVS or better subversion and check in binary files of any CAD type.
Since FreeCAD is in fact a zip archive containing xml files you can do much better with archiving those.
Since FreeCAD is in fact a zip archive containing xml files you can do much better with archiving those.
A Sketcher Lecture with in-depth information is available in English, auf Deutsch, en français, en español.
Re: Recommendations for Version Control
I think yorik developed a git addon for FC in his webtools addon:
https://github.com/yorikvanhavre/WebTools
I haven't used it.
Here are the instructions: https://www.freecadweb.org/wiki/Arch_Git
But it may just be for Arch WB ?
https://github.com/yorikvanhavre/WebTools
I haven't used it.
Here are the instructions: https://www.freecadweb.org/wiki/Arch_Git
But it may just be for Arch WB ?
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Re: Recommendations for Version Control
This tool has been removed from Arch and is now part of the Webtools addon. I forgot to change the doc page apparently
Yes it's usable with any FreeCAD document. But it's still pretty simple. Basically, if the currently opened FreeCAD document is inside a git repo, this tool allows you to commit, push and pull...
In theory yes, FreeCAD files are zip files, and 80 or 90% of what they contain is text files. So it is possible to unzip, and commit each individual file inside with a VCS system, taking advantage of text diffs. But in practice I found that the gain is small (commits take less space) and the hassle is big (there can be many many files inside the fcstd file) and there is no really big advantage (the text diffs don't really help to figure out what changed in the file). So I more or less abandoned the idea, and nowadays I just commit the fcstd file as is...
I also wrote a small tool called fcinfo see the Arch Git page that Kunda2 mentioned) that prints a "summary" of an fcstd file, and is intended to help figuring out what changed in an fcstd file. That tool can also be used with git.
Re: Recommendations for Version Control
As I use git for almost 99.9% of all projects now, I would use git for FreeCAD projects as well.
I installed the Webtools WB, but all it does is to allow you to commit/push/pull in freecad directly?
What I would really like to have would be the following workflow:
* create a new freecad project
* tick something and say "use version control"
* a git repo is created
* If you create now any files with freecad, they are commited into the repo
* you could configure if you like to commit on every save / created feature / only on exit ...
Now you could give a treeview of your development, e.g. with tags you could identify versions of your product and you are able to go back to an old version and work on that again.
In theory you could also allow merging of files. as far as I understand the fileformat, it should be possible...
Is there something like this already? If I have time, I might want to start developing such an addon.
I installed the Webtools WB, but all it does is to allow you to commit/push/pull in freecad directly?
What I would really like to have would be the following workflow:
* create a new freecad project
* tick something and say "use version control"
* a git repo is created
* If you create now any files with freecad, they are commited into the repo
* you could configure if you like to commit on every save / created feature / only on exit ...
Now you could give a treeview of your development, e.g. with tags you could identify versions of your product and you are able to go back to an old version and work on that again.
In theory you could also allow merging of files. as far as I understand the fileformat, it should be possible...
Is there something like this already? If I have time, I might want to start developing such an addon.
Re: Recommendations for Version Control
https://github.com/reox/FreeCAD_gitproj ... -354469296
How can we make FreeCAD.Console.PrintMessage() play nice with unicode?
How can we make FreeCAD.Console.PrintMessage() play nice with unicode?
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Re: Recommendations for Version Control
https://github.com/FreeCAD/FreeCAD/blob ... p#L443L457
Maybe using:
PyUnicode_AsUTF8String instead of PyUnicode_AsEncodedObject.
the currently used function "PyUnicode_AsEncodedObject" is not listed here https://docs.python.org/2.7/c-api/unicode.html
ps.: I do not build with py2 anymore. Maybe someone else can give it a try.
Maybe using:
PyUnicode_AsUTF8String instead of PyUnicode_AsEncodedObject.
the currently used function "PyUnicode_AsEncodedObject" is not listed here https://docs.python.org/2.7/c-api/unicode.html
ps.: I do not build with py2 anymore. Maybe someone else can give it a try.
Re: Recommendations for Version Control
I think the problem is, if you mix strings and unicode strings:
produces an error, while
will work fine.
I would also use python3, but as I'm using the daily builds, I'm still bound to py2
Code: Select all
"bla {}".format(a_funtion_that_returns_a_unicode_string())
Code: Select all
u"bla {}".format(a_funtion_that_returns_a_unicode_string())
I would also use python3, but as I'm using the daily builds, I'm still bound to py2
Re: Recommendations for Version Control
Another question:
Does anyone know how we can change the icons in the tabbar?
The reason is to show that the current file in the FC GUI is currently under version control ( https://github.com/reox/FreeCAD_gitproject/issues/7 )
Does anyone know how we can change the icons in the tabbar?
The reason is to show that the current file in the FC GUI is currently under version control ( https://github.com/reox/FreeCAD_gitproject/issues/7 )
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Re: Recommendations for Version Control
Relevant threads:
The need for git as a versioning tool for .fcstd files (from the Asssembly3 thread):
Overlaying icon attachment status:
https://forum.freecadweb.org/viewtopic. ... c1#p315183
https://forum.freecadweb.org/viewtopic. ... 19#p314719
https://github.com/FreeCAD/FreeCAD/pull/2272
The need for git as a versioning tool for .fcstd files (from the Asssembly3 thread):
Different topic:ceremcem wrote: ↑Mon Jun 24, 2019 12:50 pm You should always use some kind of project versioning tool, such as git (although it doesn't play well with .fcstd files) or a dedicated tool. Developing a model with Asm3 is much like developing a software with thousands of dependencies. Same problem applies there, no one can help you if you don't use a versioning tool.
Overlaying icon attachment status:
https://forum.freecadweb.org/viewtopic. ... c1#p315183
https://forum.freecadweb.org/viewtopic. ... 19#p314719
https://github.com/FreeCAD/FreeCAD/pull/2272
Alone you go faster. Together we go farther
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs
Please mark thread [Solved]
Want to contribute back to FC? Checkout:
'good first issues' | Open TODOs and FIXMEs | How to Help FreeCAD | How to report Bugs