Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- Be respectful, on topic and if you see a problem, Flag it.
If you would like to contact our Community Manager personally, feel free to send a private message or an email.
How do you personally use Branching, Merging and Versions
coleman
OS Professional Posts: 244 ✭✭✭
I am just curious. Ive been using onshape for one year now and I have not fully implemented versions and branching into my workflow.... mostly because I do not fully understand it.
0
Comments
Version and Branching: You can create versions (which are View only) and branch a version to create a new workspace. You can also comparing workspaces and versions, any combination of the two.
Merging: Onshape provides a mechanism for merging from a document version or workspace (referred to as the Source) into your currently active workspace (referred to as the Target). Specifically, when you merge a selected Source (workspace or version) into the currently active Target (workspace), all changes made in the Source are merged into the Target, including any additional features, tabs, etc.
Kindly refer below thread for more detail.
https://cad.onshape.com/help/#versionmanager.htm?Highlight=branching and merging
https://cad.onshape.com/help/#merge.htm?Highlight=branching and merging
This workflow is a little different than version control purists might use, but it's dead simple and immediately useful. Onshape gives you more-or-less infinite undo capability and the version control capability let you tag (create a version) points in your undo list that are important to you.
The next workflow you might try is having a main branch and a test branch. The main branch is where you put all the important changes to your model, and you only make changes to your main branch that are complete. The idea is that each version of the main branch is fully manufacturable, with no errors. When you are making changes, you create a temporary branch for that purpose and work on it until everything is just right. Then, rather than make the changes to your main branch by hand, you can use merge to bring all the changes from your test branch onto the main branch.
Once you are comfortable with merging, you can learn some tricks to copy over only certain changes from one branch to another, rather than all of them.
Once you have a team, or schizophrenia, version control helps coordinate multiple people work on the same part, or near parts, of a document at the same time.
There is much more discussion on best practices for version control in the software world, and the high level discussions are relevant to the use of version control in onshape. Some web searches for 'why use version control' will get you started.
My question is this:
What if I have a multi-part studio...with multiple tabs and assemblies. When I create a version....the whole document is effected by the new version (all parts, tabs etc.)
Now what if I want to keep a version control record with onshape. For example: part A is in version 2 and in production....then 2 months from now we have a product update and now product A needs to move to version 3. If I create a new version...the entire document advances to version 3....even the parts that in real life are in version 2.
Maybe I don't need to think of onshape as a way to control product version history on a part by part basis.
I suppose with linked documents it would be possible, but we lose the multi-part design functionality.
Off the top of my head, the second approach I mentioned would actually work pretty well for engineering change control. The main branch holds only document-versions for which each part has a checked and released engineering version. Any team member can be working on improvements to any part in that document in work-in-progress branches. Once the work in the branch is checked, the person responsible for release merges that branch into the main branch.
What is missing to make this work is that the search bar in the derived part tool does not search part number or part revision (relatively easy for them to fix) and furthermore, the search bar should search for part revision across document versions which may or may not be easy. Based on the responsiveness of grabbing the properties of old versions in the version dialog, I'm guessing that all the part properties like revision are stored as document-version metadata and pretty quick to access for search bar purposes.
Who knows, maybe there is a feature request for exactly this thing (searching part revision and number in the derived tool) already.
I do everything in one part tab, then version it so I can get back and abandon a crazy idea.
This is the same as copying a part file in old systems and starting with the copy.
I haven't built a complex project data structure inside OS yet.
https://www.onshape.com/videos/branching
The presenter says "Because the entire cylinder is modeled in one Part Studio, changing a few dimensions updates many parts at once."
I thought that creation of a Version spot on the main branch (which allows for new branches with new variants) made it impossible to go back and make a change that affects all the branches.
If not, email me directly and perhaps we can discuss. My email is jmceleney <at>onshape <dot> com