Module Git - Easy integration of git for your development

It looks like you need to configure your identity in Git. Open a terminal and run this command for your user account. Below is an example script.

$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

This is important because every Git commit uses this information, and it’s immutably baked into the commits you start creating. I have ran into this before on a new system when I forget to configure my identity in Git. :wink:

1 Like

Using your GitHub PAT instead your password seems to fix this issue

1 Like

Should be possible to resolve this issue temporarily by committing and pushing using cmd.

1 Like

@e.sagnelonge if i pull from the remote repo onto a new host how are the changes implemented in the project?

I am seeing that there is a delay in the gateway being updated with the changes

The default scan interval for such changes is five minutes. That can be configured (I don't have it handy), or in later Ignition versions, can be triggered by a system call.

Thank you! When pulling from git into the project repo how have you avoided manually git forcing a merge?

I am not sure I understand the question.
My understanding of the terminology is:
git is the technology for distributed version control.
A repo is a single unit of controlled artifacts (a folder and all of the code under it, except what is excluded by .gitignore).
There is a repo in your Ignition/data/projects/<projectName> folder. It is hidden and is called .git.
Most likely there is another copy of the repo somewhere else. gitHub, gitLabs, DevOps, gitea are all examples. By convention, this repo is called remote/origin and is (by convention) the single source of truth.
There are other copies of the repo in the distributed environment. Likely one on every development machine. Those would be remote/<something>.
You would pull a repo from any remote machine. For your sanity you would agree that you would only pull from remote/origin. You could push a repo to any machine. Again, for the sanity of everyone involved you would only push to remote/origin.

There are multiple branches in a repo. By convention, the source of truth for production deployment is main or master. Development and experiments are done on other branches.

If you pull from a remote machine, git will require a merge only if there are changes to the local repo and the remote repo on the checked out branch.

Given this understanding, avoiding a merge involves using branches.

When are you seeing git force a merge?

1 Like

I instantiate a new project in the gateway. I then connect them associate that project with a remote repo in Github using git module on a local machine. I open that project in the designer and pull from remote-origin . The pull occurs successfully but gets stuck in a merging state and therefore does not update the project. So i use git commands in terminal to force the pull and update the local machine's repo.

I need to add I am not using docker at all for project deployment. I am trying to leverage git across a corporate ecosystem of ignition instances so I can meet 21 CFR requirements in a more automated fashion.

I think I remember cloning the repo locally the first time rather than pulling.

Just wanted to say thank you for making this a publically available tool. I know that this will help keep me and my team up to the ever increasing standards of our industry.

5 Likes

Hi, first of all, thank you for developing this module; it has been very useful to me.
Have you considered creating and associating users through scripting?

Not directly related to the 3rd party git module, but IA staff released some resources for using git on this thread: Guide for Version Control with Ignition

We're currently testing a workflow where our repo root is at the /data folder (gwbk) and devs interact with a local container gateway and monitor/manage commits via VSCode/VSCodium opened to that folder (we also have a UI developer who mostly uses VS Code for editing CSS more than editing in Ignition Designer).

3 Likes

Hi All, wondering if anyone else has run into this issue when connecting to GitHub using SSH. Commits are successful, but when I attempt a "push", I get the following error:
Ignition Error

I have the SSH URI set up for the project:
git@github.com:[companyName]/[repository].git

And I have added my user to the project using an SSH key. I also have the SSH key properly set up in my GitHub account settings and allowed SSO for the SSH key
IgnitionUser

Here is the full detail of the error:
IgnitionError.txt (8.6 KB)

Also, our Ignition environment sits on a shared server, not on my local machine. I've made sure to generate my /.ssh files on the server's C drive in case that was the issue, but it doesn't appear so.

EDIT: I've replicated my environment on my local PC and everything works great. So my question is, if we are referring to a shared server instance of Ignition, is there a way to make sure the tool refers to the correct C:\Users\user.ssh\ location? The project on the remote server sits on a different drive, not the C drive.

EDIT2: I was not able to resolve issues with SSH, but I was able to set up a PAT instead to log in

Hi. is anyone having problems where the commit popup is empty after changes?

Hi, I have that problem frequently, the only solution I found was to commit with Git directly and then close it, after that the problem was resolved (momentarily).