How to handle US vs Chinese parts?

I just think your language is not precise and could give people the wrong idea. You say Git+KiCad is not suitable for larger teams, which is not really the case. There seems to be an assumption that the larger the team, the more likely it is that two people will want to touch the same board (or whatever) at the same time, and I don’t think this is true.

I think a more correct statement would be “KiCad does not have any tools that make it easy to share a single file between multiple people at once”, and this is true no matter whether you use Git or anything else.

However, if you don’t want to try to share a single file between multiple people at once, you won’t have problems. And “using Git” is really not the same thing as “trying to share a single file between multiple people at once”. It is quite possible to have a large team of people using Git as long as they don’t have the idea that sharing a file is possible/easy.

Another point is that even if KiCad had a graphical diff tool, you would need out-of-band communication in my opinion to attempt something like having two people work on a single PCB layout, so that they don’t undo each other’s work or otherwise waste time. I suspect this is the main reason that the big commercial tools that support collaborative PCB design do it with a real-time client-server approach, rather than by using version control and merging.

1 Like

Well, I really hope that if a large team wants to use any kind of tool, they will test and evaluate it without too much taking into account any “internet advices” :slight_smile:
Because for example it could still be useful for the team to even work on the same files if they would come up with a way how to merge the work (i.e. hiring low level engineer to do the merges manually).

I do disagree with this statement. This is exactly how it was with a software development in around 2000. It was a crazy idea that two people would work on the same source code at the same time… And now we have git, three-way megres, documentation, tests, atomic commits… For me this is one of the most important improvements in software development…
And the same could be implemented in PCB design… For example, having a board with MCU and PSU, why you could not have one person working on PSU and second on MCU? Of course you would need some coordination, but that could be inband - i.e. everybody working on a different schematic sheet while providing common API (global nets and hierarchical pins) with documentation (inband like in software source code) and with everyone having assigned their place on the PCB, where they can do their work? Yeah, it may seem crazy and not implementable and definetly not present in current tools, but it could be done, it is just a lot of work… Probably same amount of work like going from simple TurboPascal IDE with integrated compiler to complex IDE with build servers and version control…

But I am afraid we kinda stole this thread for an slightly off-topic discussion :slight_smile:

Interesting remarks.

If I can chime in here. I think that you can use whatever tool you want in order to get the job done and also what meets your requirements. For me, myself and another engineer use Git with KiCAD because we are also software developers and we are familiar with the system. yes, merging is a problem especially when it comes to conflicts. But we have figured a way around it by making sure 1 person is editing the files at a time.

If Git works for you, go for it. If SVN works and you think that it is best, go for it.

The most important thing is that there is version control which I think we can all agree is needed even on hardware based projects.

Also, I plan on making another branch for US parts. I don’t plan on merging this into the main branch it is pretty much be it’s own thing

I completely agree, use whatever tools work for you. I am also primarily a software developer, and so I use git for all my projects: software, electronics, anything…
But as I am the only one working on KiCad design - all my colleagues help with the design ideas, datasheets, finding parts, etc… but I am the only one who puts it into the CAD form - it is easy for me to make sure that I do avoid conflicts. I am also using submodules for my libraries, so the git repo could get quite messy very quickly.
However, once I forgot to push work from my notebook and noticed it after I did some work on my desktop… It was easier to redo the work than try to merge the commits :slight_smile:

And for the on-topic discussion, I feel like we in Europe will need 3 branches soon :slight_smile: