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.
Ways to clean up version tree/branches
tim_hess427
Member Posts: 648 ✭✭✭✭
I want to get some feedback from the community on this issue. Maybe we need to adjust our workflow. I've got a fairly large document with a couple dozen parts and we've been trying to follow a GIT workflow where we create branches for design changes. Once we're happy with the changes, we merge back into our development branch. Then, we repeat for the next design changes by creating a new branch for a new set of changes.
This seems to work OK, but it has resulted in a really large number of branches. So, when I open the version tree, the formatting of the branches makes it difficult to see where the most recent work is being done. This is made worse when an update is pushed to the document and any open workspaces are pushed to the top of the tree with no real design changes being made. It would be great if I could make the version tree wider so that I can see more branches at one time.
So...
- Can/should we be doing something different with our workflow to keep things more clear? I've thought about separating parts into separate documents, but I've read that each document should be a container for a whole project.
- Would others find value in a full-screen, or adjustable width version tree view? I'm thinking this could be an improvement request.
Tagged:
2
Best Answer
-
mthiesmeyer Onshape Employees Posts: 115Hi @tim_hess427,
If you are not creating versions on your "development" branches then you can delete the workspace once you have finished merging it in. This is very much like a git workflow where you branch -> edit -> merge -> delete branch.
Best,
Mike5
Answers
Haven't used Branch much, but our intention would be to use them for alternate design option, a concept that is somewhat different from the main intent of the design. I believe the Main should still be used for linear development of the design, not just as a placeholder for Merges
CAD Engineering Manager
If you are not creating versions on your "development" branches then you can delete the workspace once you have finished merging it in. This is very much like a git workflow where you branch -> edit -> merge -> delete branch.
Best,
Mike
@adrian_velazquez - Correct (for the moment at least). This method makes it clear where the released parts can be found are (Main) and which design changes are just experimentation and exploration. However, we're still trying to figure out the best workflow and open to trying new approaches.
In your situation (using branches for alternate design options) I would worry about a shared feature between the different design option not appearing on every branch that needs it. Although, I suppose the two methods are not mutually exclusive. There could be "Main" branches for each alternative design option, with development branches coming off of those.
In this example, I created Branch B1 to work on the assembly (Assembly 1), but Part Studio 1 also has a B1 instance, to me that is just clutter... since I did not touch it.
This is the simplest of scenarios, real world situation this would be exponential, with larger documents, more versions, and more users doing it.
And to you can delete the active workspace of a branch w/o deleting saved versions in that branch
CAD Engineering Manager
In your workflow, you'll want to not version a branch. May be easier said than done.
1. A simplified GIT workflow that allows work to be done on the main branch and ideas can be carried out on separate branches. Versions can also be set on the branches so that if a branch is deleted, it essentially closes the branch (As shown on branch B2.1 - Cover) .
Here is a link to the document: https://cad.onshape.com/documents/adf65b4c7870a25d7c4cf02d/w/aa3e050d083b4e92fb768569/e/62d8dda31a47fd17b1657f45
2. A stricter more classical version of the GIT workflow where no work is done on the main branch. There is a technical article in our learning platform that describes this method in detail: https://learn.onshape.com/learn/article/gitflow-version-management.
And a link to a document can be viewed here: https://cad.onshape.com/documents/d8f2d0a4fb7dbdc8e25543f9/w/bb178dbccdcf543beac3e3fb/e/69732de7432660fad839d4a2
3. A GIT branched workflow where work can be done on the "Main" branch but "Releases" are applied at specific points in time on the Main branch and ECO's (Change Orders) are proposed on branches from the versions. Certain parts and drawings are submitted for "Release" along the way.
I hope this helps!
Also on the topic of separate linked documents. Here is my decision tree:
1. How do I share the data with suppliers and customers. (Sharing happens per document)
2. Do I want a separate version history for some of the items in my design? (Version history is per document, revision treatment is per item within the document)
3. Are there parts that are "Library" items that are used on across many products? (It may be easier for users to discover items maintained in a library in a folder)
If the parts have no geometric relationship to one another, then I will create that as a separate document.
Here is a view into my document structure for the Coffee Grinder
The folder my unique documents for the coffee grinder live in.
My library folder, where some of the parts in my coffee grinder live.
And finally the BOM structure view, showing is on one list of the right.
CAD Engineering Manager
@mlaflecheCADmlaflecheCAD said: Michael, this is great advice but I find the first consideration, sharing data with suppliers, I often do not consider this at the start of the design process as I sometimes don't know what process will be, so when it gets to share data with suppliers for quotes/manufacturing advice, items have been embedded into a document which can't be shared in total, I'd love a way to share more gradually from within doc without sharing everything. At the moment my best solution has been to just save things out and share by traditional means.
Twitter: @onshapetricks & @babart1977