Guide for Version Control with Ignition

Thank you for creating this guide!

I am currently working on a guide for a customer, but there is one issue with the repo I was hoping you and/or the IA team could clarify. Are the repos ok to fork (with/without attribution)? Since there is no license defined the repos are assumed proprietary by default. Adding an explicit license to the repos would also be appreciated!

Everything is free to use as you'd like. I'll add an MIT license for good measure.

2 Likes

Again, beginner here.
As I studied, I learned that Git is doing the version control mechanism, and Github is a repository hosting services for Git.
I understood that, Github is optional for single developer, but required for multiple developer.

As you may all knows, clients, companies, do not want to put resources on third party cloud.
Ideally, version control needs a dedicated server for repository hosting?
Do we have an option to self host this? What software similar to Github we can use?

No, hosting a git repository does not require Github, or any cloud service. It doesn't need anything more than a server with command line git and SSH installed. Git repo URLs for this look like git+ssh://user@somehost.somedomain:folderName, where the folder name is in the user's home directory. (This is what I do for my own business repos.)

Various open-source projects offer github-like web services, but that is all optional.

1 Like

That make sense (as usual), since all you need is a storage and something that do the compare, which Git is already doing.

I have fundamental question, regarding setup of each developer machine's, segregation of each dev's codes, etc. but I will post it as soon as, I got the question right.

Thank you.

When using just git+ssh, the users should have SSH keys configured so that password login to the repo server is disabled. That also means the user names on the repo server do not have to correspond to actual users, though that is wise for any private repos. For shared repos, simply create a dedicated username for that repo, and set every desired user's public key in that account.

1 Like

Thinking about it now.. Do you think, Git tool skills, is too much to acquire and maintain?

From experience, its very rare occasion or never, that we need to revert back to a version in the past, if necessary, we might only need to change few codes.

What we really need:
In an environment where each developer is working on its own use case.
It is a waste of time and effort (for dev and tester) if we miss to promote (to test env) the modified resources (views, named queries, project scripts).

Is there a way to detect which resource have changed?
I am thinking of a tool to compare before and after of gateway backup.

I find git to be extremely valuable. I don't revert very much, but stashing and patch splitting are often helpful. Most importantly, regular commits make a history that have really helped me when troubleshooting.

Git will be much more useful in v8.3, of course.

3 Likes

Loaded (& excellent) question... there is a learning curve (to developer & user alike) and might not be justifiable to a client that might be paying for it. However, after implemented & utilized, version-control always = 'worth it' in my book.

For many resources, a query of the audit log might be a quick way to see that something was modified (when and by whom).