How can multiple people work on a single schematic in Eagle - Page 1
Forum section: electronics / general

author: zakrent
author_rank: Newbie
timestamp: December 23, 2019, 06:43:39 pm
content: I'm using Eagle to work with multiple people for the first time, is it possible to work on the same schematic with multiple people by using some built-in thing or version control system like git? Everyone is working on seperate sheets so there shouldn't be any conflict issues. We tried using git but when merging schematic file there are a lot of redefinition issues that are very hard to fix.

author: rx8pilot
author_rank: Super Contributor
timestamp: December 23, 2019, 06:48:33 pm
content: No.Eagle is not a team solution in any respect. All the sheets are married together and there is no method that I have ever seen to have multiple people share sheets in real time.Heck - you cannot even open more than one schematic at a time which is a major pain. I have many projects that are part of a system where I need to refer to other schematics to make sure they are in sync. Not possible.

author: macegr
author_rank: Regular Contributor
timestamp: December 23, 2019, 11:47:55 pm
content: QuoteNo idea what the situation is on the subscription version of Eagle, but in Eagle 7.x you can still open several copies of the program at the same time. Since it's so lightweight even compared to a modern web browser it's not a big deal.Few collaborative efforts of any kind are intended to work with people working on the same instance of a file at the same time. Everyone edits their own copies and then, if one has changed something affecting another's changes, resolve the conflicts at merge time. Usually things can be done in an orderly fashion and avoid merge conflicts. With Eagle files there is nothing very useful to help you figure what was actually changed between commits, so true collaborative development with usage of feature branches etc is not recommended.However, just because Eagle doesn't provide tools for version control doesn't mean the tools don't exist. After all, git and github are version control tools that exist outside the context of whatever code you're developing.https://cadlab.io/is basically a Github or Gitlab specifically for PCB CAD projects, and they have all the visual versioning and diffs you'd expect. Will it stick around long enough to be useful? Who can tell with a cloud service, but at least you'll retain local access to your software and files should they ever shut down.

author: alexwhittemore
author_rank: Frequent Contributor
timestamp: January 07, 2020, 10:13:28 pm
content: FWIW, you can still open multiple copies of Eagle, but it's not straightforward.As for multiple users working on the same design - in my experience it's less of a pain than Altium. At least Eagle's files are text based, so simply looking at a dif gives you an idea of what changed, and in truly trivial cases, you can even merge. For example, if user A added a bunch of stuff and changed a bunch of things, where user B only bumped one wire or changed a name, it's pretty easy to just merge those changes. That would be a full conflict in Altium land (although counterpoint, Altium provides a diff viewer which Eagle doesn't). And yeah - I haven't used it yet, but I totally second cadlab.io - looks like it provides lots of good value here for Eagle and Kicad.But yeah as for two users google-docs style editing the same thing - I'm not aware ANY EDA supports anything so convenient.

author: alexwhittemore
author_rank: Frequent Contributor
timestamp: February 07, 2020, 04:11:12 pm
content: I'm going to reply instead of edit since the notification might be useful:I actually had 3 people working on the same project for the last week, and the solution for us was Design Blocks. Basically, design blocks are isolated bits of schematic/layout. It's essentially as if you made a board for your supplies, a board for your MCU, a board for your analog section, etc, then copied+pasted them together at the end into one project. Design blocks don't offer a lot more functionality than that (for instance, you cant externally modify then "update" your master design - it's got to be a full delete/replace), but they do make the process a little easier.In our case, one of us designed the supply section in a design block, another designed a bridge chip section, etc, then one of us was responsible for handling the master schematic and merging everything into the finished product. Not exactly seamless, but given that each sub-block took a day or two, it worked out to save us a total of like a week of otherwise overlapping development time when we would have had to coordinate much more closely to avoid merge conflicts.

author: rx8pilot
author_rank: Super Contributor
timestamp: February 07, 2020, 04:20:14 pm
content: This is a good use of the design blocks.As Autodesk continues porting Eagle to Fusion 360, design blocks are not implemented. It is hard to say if they are being abandoned or if they are leveraging the data management engine that Fusion is based off of to accomplish a similar functionality.In Fusion - I can have a dozen parts being worked on by other engineers anywhere in the world while I am working on the main assembly. Everytime someone updates, I get a notification that I am out of date. I can sync whenever is best for me and if the changes break something, I have the option to revert and notify the person responsible for the change. It is considerably easier than Solidworks PDM for working in teams.

author: alexwhittemore
author_rank: Frequent Contributor
timestamp: February 07, 2020, 04:30:04 pm
content: Quote from: rx8pilot on February 07, 2020, 04:20:14 pmOff topic but: in that situation, I really appreciate how Fusion handles assemblies, but I REALLY wish I could do in-line editing. Especially in the PCB workspace, where you CAN'T have linked designs in the project the PCB is part of.For instance, I have a PCB that mates to a Jetson TX2 module. I want to make sure none of my components take up Jetson's airspace, which is pretty easy to keep track of, but I still want to 3D model it. I could make my Eagle synced F360 project then link the Jetson in, except that breaks F360 sync. I could make my Eagle F360 project, then link THAT into a SEPARATE project and also link the Jetson in, but then I can't edit the Eagle side in the context of the Jetson. For instance, say I have one component under the jetson that needs to not be - I can't nudge that component in F360 JUST out of the way, unless I calculate the move in the assembly, open the board-only project, make the move, "update" in the assembly, and check. Cumbersome.My specific example isn't perfect because in the case of the Jetson, which I can't control or change, I can just "unlink" that embedded component, then everything is happy and fine. But, for instance, inserting components from McMaster still breaks the workflow, so I guess my gripe holds.But you can imagine how annoying it'd be especially in the context of a project with many components, or ESPECIALLY a project with many boards.