pcb revision control software - Page 1
Forum section: electronics / beginners

author: Galaxyrise
author_rank: Frequent Contributor
timestamp: April 09, 2016, 07:17:09 pm
content: Before I start my next pcb, I'd like to use a better process than just copying the project and appending a number when I make a change to it.I'm looking for the facilities I'm familiar with in source code revision control:history of changes to a file with comments describing the reasoning behind the changeability to rewind my project to a point in timeability to compare two revisions of a file to see what changed. For schematics and pcb layouts, I'm expecting some kind of image diff.I did some google searching, and most of what I could find was from 2011, and seemed promising. Presumably the tools have been made more widely available and easier to set up by now, but I didn't find such a thing.I have experience with git and perforce, but am open to any RCS. I currently use DipTrace for my schematics and pcbs, but this is a good time for me to switch if that will make project management easier.Are there any RCS workflows ready to go for schematics and PCBs that are suitable for hobbyist use? Any recommendations?

author: dmills
author_rank: Super Contributor
timestamp: April 10, 2016, 10:52:41 am
content: The problem is that visual diff thing, all the PCB packages use different file formats, so this really has to be done as part of the PCB tool itself, and while some of the multi kilobuck tools have this (Often using SVN as a backend), I have not seen it on any of the cheap tools.Regards, Dan.

author: DimitriP
author_rank: Super Contributor
timestamp: April 10, 2016, 12:09:51 pm
content: A couple of thoughts:If Ireallywanted to compare two PCBs I'd throw each onto their own layer in GIMP or Photoshop and then fiddle with the opacity to spot the differences.With schematics and board designs you are not looking at the difference in the same substractive way as with code.a =1 vs a=3 makes sense on it's own, but a line here and a line there or the added R9 on and empty screen (the difference) without the rest of the picture doesn't mean that much uness you are looking at the whole thing to see where R9 goes and what it does.

author: amspire
author_rank: Super Contributor
timestamp: April 10, 2016, 12:49:48 pm
content: I keep coming back to SVN. Doesn't do everything you want, but it is solid, and I find if it is set up well, other people really get to like it.We use TortoiseSVN (if you are using Windows) because it really makes SVN easy. I keep looking for anything close to TortoiseSVN on other platforms.With SVN, you can easily put the whole design project under SVN, but you can easily check out just the part of the project you want - such as the PCB design folders. I have the SVN respositories on a WebDAV web server, so anyone on the VPN network can browse all the projects and files with a web browser. If someone just wants the latest Gerbers for example, they can just get them straight from a browser. You can also capture an address of a folder you need to access, and paste it into Tortoise SVN to export it or check it out. We don't have any project folder on the servers at all.Every time you commit files, you are asked for comments, and if the whole design project is in the same SVN, it is easy going back to any point of time and getting all the latest files at that instant. Every user has their own SVN login, so it is easy to identify who makes the change.The way SVN repositories work make them very easy to back up, and SVN does a great job at minimizing storage needs. I have used it when there are hundreds of repositories with tens of thousands of files in each repository - some in the gigabyte size - and I have never had any significant problems. Eliminating all the zip copies of a project is a huge help.

author: MrSlack
author_rank: Frequent Contributor
timestamp: April 10, 2016, 12:52:54 pm
content: +1 for TortoiseSVN and Subversion. I've run a subversion server that has over 100,000 revs and is 39Gb in size and it just keeps hammering on quite happily.Compared to git which I'm sure will be mentioned, it's actually easy to use and you can lock files which is essential for working on binary files.

author: amspire
author_rank: Super Contributor
timestamp: April 10, 2016, 12:56:14 pm
content: Yes - ignore Git. It is great for programming, but for general projects, SVN is better. Git relies on being able to merge, and you cannot merge PCBs and Schematics.

author: MrSlack
author_rank: Frequent Contributor
timestamp: April 10, 2016, 01:10:40 pm
content: It's bloody awful for code as well IMHO. Nothing but trouble with it since day one.

author: alanb
author_rank: Frequent Contributor
timestamp: April 10, 2016, 03:41:03 pm
content: +1 For TortoiseSVN and Subversion. In addition BeyondCompare fromhttp://www.scootersoftware.comis a great tool for showing the differences between different versions. Unfortunately there will not be a custom viewer in BeyondCompare to show the differences as an image. BeyondCompare can be used as a plug in for Tortoise.

author: Iwanushka
author_rank: Frequent Contributor
timestamp: April 10, 2016, 05:04:08 pm
content: Perforce is nice solution and its free for home use, but make sure your cad tools support it

author: Fred27
author_rank: Unknown
timestamp: April 10, 2016, 05:08:05 pm
content: Any source control system will do the job if it's just to mark revisions rather than any complicated collaboration.I agree Git is more complicated than most, with features better suited to open source projects. However, if the OP has Git experience then it will do just fine. There is also TortoiseGit for those coming from a SVN background who like TortoiseSVN.

author: MrSlack
author_rank: Frequent Contributor
timestamp: April 10, 2016, 06:01:30 pm
content: Git really won't do for this. It has terribly bad binary support, no locking and the tooling is horrible. It's not even good for code (having spent most of last week untangling a massive pull request it assumed it could merge cleanly). I really wish people would stop crowing about it. It's fearsome if you have some software responsible for about £170bn of assets being managed dependent on it. My pants are nearly shit once a day without failure.

author: Fred27
author_rank: Unknown
timestamp: April 10, 2016, 06:10:52 pm
content: I'm glad to say that source control by locking files died with Source Safe many years ago.Not all PCB design involves binary files (e.g. the reasonably common Eagle is XML) and it sounds like the OP won't be doing merges anyway.I agree Git has a bit of a learning curve before you see the benefits over something simpler, but just because you don't get it yet doesn't mean it's bad. A massive merge headache is far more likely to be down to your processes and I'm sure would be as bad with any source control.I wouldn't recommend Git to a novice, but the OP says he had experience with it, and some people implied it couldn't do the job. It definitely can. I use it both for hobby code and PCB design and professionally for code at work. We switched from SVN about 18 months ago. It did take a few months to see the benefits but now I definitely wouldn't go back.

author: MrSlack
author_rank: Frequent Contributor
timestamp: April 10, 2016, 07:09:24 pm
content: Source Safe was a turd yes but locking isn't dead.Have you tried merging a complicated XML document? I've actually written commercial tooling to merge XML whilst maintaining XSD compliance and it's not a language you can merge using diff algorithms reliably.Refactoring is where these things falls over. You need some intelligence behind merging. We shouldn't be merging text in 2016, we should be merging the parse trees of the files.But I digress as that's the day job and I'm not going into dragon book territory today.

author: dmills
author_rank: Super Contributor
timestamp: April 10, 2016, 07:58:41 pm
content: I still have a copy of that somewhere.Actually, merging parse trees is an interesting idea, but I can think of some ways it would fall down really badly, and you would still need to be able to map back from the resulting combined parse tree to lines of text in the source files as we do not in general edit parse trees directly.....Regards, Dan

author: MrSlack
author_rank: Frequent Contributor
timestamp: April 10, 2016, 08:19:15 pm
content: Humans don't. Yet. TouchDevelop has the right idea. You manipulate the AST directly via a touch based UI that happens to render as text. Meet the machine half way.

author: diyaudio
author_rank: Frequent Contributor
timestamp: April 10, 2016, 08:56:37 pm
content: Go git or go home, SVN makes folders in every dam folder and makes a copy of each file as history.

author: amspire
author_rank: Super Contributor
timestamp: April 10, 2016, 09:55:50 pm
content: Quote from: diyaudio on April 10, 2016, 08:56:37 pmIt used to. Now it is a single folder in the top directory.Git is almost unusable for a general purpose repository into copies of repositories all over the place. It lets anybody commit anything, and you are meant to tidy the mess up with a merge. Trouble is that the merge fails for almost everything but program source files. Anyway, most people just don't understand how it works. Git is extremely non-intuitive. Because SVN is a single central repository, it is simpler and it work for all types of files.