1

I am a beginner with analog electrical circuits. Similar to computer programming and CAD, is it recommended to use version control software when working with MultiSim? Are there circuits complicated enough to where the design process iterative as in programming and CAD where you may have to go back to reworking the design after simulating and testing an initial design?

If so, what version control software would you recommend with MultiSim? My inclination would be to use SVN.

Thank you in advance!

L Duran
  • 13
  • 2
  • 1) If your tool chain allows version control, it's always an excellent idea to use it. Your design doesn't even have to be very complex. Maybe you decide to revert the changes of the previous days. Then it's just a matter of a few simple clicks. 2) GIT all the way! – Velvel Jan 18 '23 at 16:35
  • Neither git nor svn are particularly suitable for version control of binary files on their own. – Polynomial Jan 18 '23 at 16:50
  • @Velvel 1) Thank you! That makes a lot of sense. So far, my experience has been that the design process is done completely upfront and then it's simulated or tested on an actual circuit, which is a relatively short part of the process. I don't think I have ever had to update a design that I made. It might just be the projects I've worked on so far, but I may just need to revisit them. 2) I avoided git because Multisim seems to save in a binary format. – L Duran Jan 19 '23 at 11:24
  • @LDuran 2) Git in itself isn't suited for binary data. But I'm not sure if SVN is much better (I believe it also stores deltas). You may want to check out Git LFS (Large File Storage), which is a Git extension made for this purpose. – Velvel Jan 19 '23 at 11:31
  • Whether version control would even be helpful for Multisim is my biggest question. I think it's possible that I am not at the step where it would help yet, but when I get there, I want to be ready and have experience. – L Duran Jan 19 '23 at 11:31
  • @Velvel Re: Git LFS. Thank you again! That's also very helpful. I've been using SVN with Solidworks for mechanical engineering design. From what I found, engineers who did use version control for this CAD format tended to use SVN. SVN seemed to do a good enough job on many small binary files It also seemed to work good enough or better than vanilla Git for the same projects in practice (storage, the time it took to pull/push a project). So I stuck with it. I'll give Git-LFS a try as well! – L Duran Jan 19 '23 at 11:38
  • I don't think GitLFS is actually quite right here? I haven't used it but from the docs it seems to be designed for leveraging cloud platforms as storage locations for large data in git repositories (binary included) rather than local storage. I might be wrong, and it might be usable in a local setup, but the docs all seem skewed towards the cloud use-case. – Polynomial Jan 19 '23 at 11:39
  • @Polynomial Re: GitLFS and cloud platforms. I see. That warrants some research too. – L Duran Jan 19 '23 at 11:41
  • I once heard that it's possible configure and use Git LFS locally, but haven't set it up myself. But @Polynomial's suggestion (git-annex) seems more promising either way. – Velvel Jan 19 '23 at 13:11
  • Thank you, @Velvel! I appreciate your input as well. I will look into Git LFS for thoroughness, but I am most likely going with git-annex as you said, it looks more promising, but it's good to understand both. – L Duran Jan 29 '23 at 16:04

1 Answers1

1

It's been a long time since I've used Multisim, so I'm not sure if NI include any kind of built-in version control with it, but if they do then I would strongly recommend using that.

If not, what you essentially need is a version control system suitable for binary files. Source control systems like git and SVN are not particularly suitable for this because they are designed for source code (text) where changes can be expressed differentially (i.e. as a diff).

If there's no built-in version control for Multisiom, I'd recommend looking into something like git-annex, which is a plugin for git that lets you version binary files without trying to treat the binary data itself as source. The how it works page provides a pretty good explanation:

The contents of annexed files are not stored in git, only the names of the files and some other metadata remain there.

The contents of the files are kept by git-annex in a distributed key/value store consisting of every clone of a given git repository. That's a fancy way to say that git-annex stores the actual file content somewhere under .git/annex/

Polynomial
  • 10,562
  • 5
  • 47
  • 88
  • Thank you! So far, I cannot find any documentation on built-in version control, but I'll check Multisim at school today to see if I can find it. It might still be that I find an external version control more useful. I have not tried git-annex, but I'll look into it. Thank you! – L Duran Jan 19 '23 at 11:29
  • 1
    For the record, after a bit of playing with the menus, I find that Multisim does have a very rudimentary version control on the level of the project files. It's started through "File" > "Projects and packaging" > "New project". You can add new files by right clicking the folders in the "Design Toolbox" and clicking "Add File". You can restore and create backups through "File" > "Projects and packaging" > "Version control". – L Duran Jan 19 '23 at 23:23
  • Thank you so much, @Polynomial! I believe I will start experimenting with git-annex soon to get used to it before using it in any real project. (I'll look into Git LFS too for thoroughness, but I agree with @Velvel that git-annex seems more promising.) As far as my research goes, there really isn't an industry standard. So why not go with the best technology we have available at the moment? Thank you both again! – L Duran Jan 29 '23 at 16:04
  • No worries! Glad I could be of assistance :) – Polynomial Jan 30 '23 at 00:55