How to use Altium with Git?

24k Views Asked by At

Altium has built in support for Subversion but we do have a need for version control at multiple sites. WANdisco can synchronize multiple SVN repositories but it is expensive. Has anyone used Altium with Git? If so, how?

6

There are 6 best solutions below

2
Eric Anderson On BEST ANSWER

I recently re-raised this question with Altium and got the following reply:

Eric Anderson, good question! I am sorry to say that there is only support for SVN and CVS as you were aware. I have not heard of any future plans for the other storage/version control software packages. The only thing that comes to mind is to use the built in SVN and in the "working directory" try adding that to Git (or others) and do the commits/updates external from Altium.

I can also suggest going onto AltiumLive and into Ideas section and enter an idea. If enough people like it and vote for it the possibility for implementation exists (no promises of course).

AltiumLive ideas is at http://bugcrunch.live.altium.com/#Ideas/New if anyone feels like commenting there.

1
Paul Evans On

Have a look at git-cvsserver it's a a CVS server emulator for git. It appears to offer the pserver protocol directly to a CVS client. It's doesn't support watches though.

1
David Cary On

It sounds like you have multiple SVN respositories, and you want some kind of distributed version control.

Have you considered using a distributed version control client that supports SVN repositories, such as TortoiseHg or SVK or SmartGit or git-svn ?

Such clients cannot do everything that a client working with a repository designed for DVCS can do, but perhaps it will be better than what you have now.

5
Jason Kotzin On

I recently got this working. I'm using a private repo on github, so I unfortunately can't show proof. But here is how to do it, I hope this helps others as it took me a few hours to figure it out. Note, there should be nothing special about using github, they are probably using the git-svn as Paul mentioned.

I'm using the 'built in version' of SVN under Altium Version Control preferences. I do have tortoise svn installed, although that's just so I can use some of the GUI features. (I'm using tortoise 1.8.5, which seems to work fine with github).

Here is the thing that got me stuck... For SVN to work, you CAN NOT have an empty repo, you have to have at least one commit. So assuming you are on github, start a repo, and then follow the instructions they give. (just so the repo is not empty):

touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin [email protected]:flirc/altium.git
git push -u origin master

Now go to Altium, Preferences->Data Management->Design Repositories

Then click "connect to" SVN. A dialog should appear. The name is just a local reference so you can distinguish the server if you have multiple.

For github, and my example above:

  • Method: https
  • Server: github.com
  • Server Port: Default
  • Repository Sub Folder: /flirc/altium

It should be able to connect, and you should be able to seamlessly use SVN in Altium now. Seems to be working great so far. Hope that helps.

0
sa_leinad On

You can always use GIT outside of Altium - I have been doing so for many years.

Simply create a GIT repo based on your project folder.

On the downside, you do lose the functionality of Altium showing the differences between versions. Also, as far as I know, you can't do merges as the files Altium uses are not text based.

Edit: Altium are currently working to implement GIT as a version control option. https://bugcrunch.live.altium.com/#Idea/2379

1
zewill On

NEWS! (2018)

From the Release Notes for Altium Designer, Altium added support for Git version control.

To know how to use you can follow this Using Version Control with Altium NEXUS guide.

NEWS! (2021) Now you have specific documentation for Git version control. Using Git Version Control with Altium Designer

You can see this useful tutorial from Robert Feranec on Youtube. Altium - File Versioning - Step by Step using Git (GitHub)