#Source Control

2 Followers · 65 Posts

Source control (or version control) is the practice of tracking and managing changes to code. Source control management (SCM) systems provide a running history of code development and help to resolve conflicts when merging contributions from multiple sources.

Question Alan Watts · Jan 2, 2024

We are trying to use Git for Source Code control in our existing application. Currently all Source Control is a manual process. We are running IRIS on a Windows server. The git extension has been installed and initial configuration done. We do get the git tab in Studio. We keep getting the following error:

Git Status:
fatal: detected dubious ownership in repository at 'C:/KBS/dev/server/db'
'C:/KBS/dev/server/db' is owned by:
'S-1-1-0'
but the current user is:
'S-1-5-18'
To add an exception for this directory, call: git config --global --add safe.directory C:/KBS/dev/server/db.

12
0 1044
Question Michael Derr · Dec 4, 2025

We are a group of interface analysts in a healthcare setting, running IRIS for Health 2024, having upgraded over time from an old ENSEMBLE environment.  We have been working on a wish list of development goals, but are having trouble finding the correct, best practice method/path for getting to what we envision.

Current state:  We run IRIS for Health on a Redhat 8 virtual machine.  We run Interoperability productions (IE.cls) out of 6 namespaces.  We have a dev/test box and a production box.

10
0 179
Question Alan Watts · Oct 31, 2023

I am trying to use git-source-control with IRIS. 

Things are moving along well. I have installed git, ipm/ zpm, git-source-control. I have done the initial configuration and initialized the repository. I am hoping there is some documentation available to describe how to use this within Studio. I see a new option on my toolbar labeled "Git". It gives me options Status, Settings, Launch Git UI, Push to remote branch, Fetch from remote, Pull changes from remote branch, Create a new branch, Check out an existing branch, Export All, Export All (Force), Import All, and Import All (Force).

8
0 1702
Question Colin Brough · Apr 30, 2025

We have classes in a Production environment that are causing us some issues - example attached.

When we export them from the production environment the XML contains a snippet like the following:

<UDLText name="T">
<Content><![CDATA[
//Property any As list Of %XML.String(XMLNAME = "any", XMLPROJECTION = "ANY") [ SqlFieldName = _any ];

]]></Content>
</UDLText>

When imported and compiled into an Ensemble instance this class works as expected.

When viewed/edited in a development environment we run into issues - the presentation is similar with both Studio and VS Code.

8
0 214
Question Shanwen Liu · Dec 10, 2024

Hey everyone, I am implementing version control with git-source-control on our codebase and I ran into a pretty strange issue. I believe I have the set up (mostly) correct as the behavior with .cls files is exactly as expected. However, I noticed that git is not keeping track of any changes to CSP files.

Specifically, if a new CSP file is created and saved, I will get the following output:

exporting new version of /csp/testdb/wrc.csp to C:\InterSystems\IRIS\mgr\repo\TESTDB\csp\testdb\wrc.csp

Added /csp/testdb/wrc.csp to source control.

C:\InterSystems\IRIS\mgr\repo\TESTDB\csp\testdb\wrc.

8
1 267
Question Colin Brough · Jul 1, 2025

Is it possible to audit code changes in a namespace?

Ideally what we'd like to be able to do is check which classes were compiled (or deleted) in a time period, eg in last 3 months, and which user made those changes. Even better would be an audit of what those changes were, but that's less important (for us, as we can probably find that information in other ways).

We have a service where 3 groups, each with multiple users, potentially have access to make changes to the live service. With the best will in the world, each group doesn't always tell every other group about changes made.

6
1 159
Question Victor Castanon · Nov 19, 2024

Hi there,

I'm attempting to use the newest version of git-web-ui now that we've also updated to 2024.1.2. I'm having an issue though where I'm getting a 404 when launching the web gui from the Source Control menu in a production. If I look in the nginx logs I see the following:
2024/11/19 22:00:47 [error] 16#0: *237 open() "/opt/nginx/html/isc/studio/usertemplates/gitsourcecontrol/webuidriver.csp/CUSTRUSH/CUSTRUSHPKG.FoundationProduction.CLS" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /isc/studio/usertemplates/gitsourcecontrol/webuidriver.

6
0 219
Question Colin Brough · May 29, 2023

Looking for advice on best practise (or at least reasonable approaches) for handling the Production class when utilising source control. (And perhaps wider advice around deployment.)

Scenario: a production server, a UAT test server, a connected development server plus multiple local development servers. In a particular (HL7 focused) namespace the production has an in-coming feed, more than a dozen downstream TCP connections, half a dozen downstream SQL connections, an email connection.

5
1 355
Question Reuben Formosa · Jul 15, 2024

We have installed IRIS on a separate server that we access remotely and copied all code and data to it so we can test IRIS before we do the move. We develop directly on the server. We Use VsCode to code but sometimes we might need to go to cache studio for some tasks.

We were interested in git for Shared Development Environments, we have installed it on a server with IRIS 2021 and configured it by following the instructions and videos of InterSystems summits we found online. We initialised a local repository on the server, added some files to start testing branches.

4
0 394
Question Enrico Parisi · Dec 28, 2023

I'm testing git-source-control and I have  problem with a CSP application.

I was able to configure in settings a CSP application that use the path /csp/myapp, that worked.

I have another application /slg and I'm unable to add it to Git.
I created the mapping as "/CSP/" - "/slg" - "csp/slg/", then in Studio when I right click on the CSP folder in the Namespace Work Area, select Git -> Add:

porting new version of .
2
0 339
Question Colin Brough · Mar 3, 2025

The compile step in VS Code when using the InterSystems VS Code extensions appears to modify line endings in our class files when newly pulled from remote repo.

What steps can we take to stop this happening? / What settings can we modify?

We are doing local development with client side source control using git (BitBucket Cloud repository). We were previously using GitLab (locally hosted) and didn't have this issue. Developers are all on Windows machines, as are all the Ensemble instances. We believe we have autocrlf = true in all our local git configurations.

1
0 178
Question Dmitrii Baranov · Mar 31, 2025

I'd like to ask you for recommendations on how to properly use repository dependencies when using VSCode and Client-side editing. Suppose I have projects A, B and C, with A being independent, B depending on A, and C depending on A and B. I am currently working with the main project C, and I want to be able to contribute to all the other projects in a single VSCode window (instead of opening three instances). How do you solve this problem? Git submodules? ZPM? Something else?

1
0 142
Question Jason Jones · Jul 26, 2023

This question originally appeared in the comments of the article: Git for Shared Development Environments
 

I am trying to implement this for my Department of Veterans Affairs development group, the problem I have is, there seems to be no way to keep each package's repo separate. For projects in VA, it is very important (and it's also much more practical from a working perspective) to have a separate GitHub repo for each project, and for us in IRIS a project is a package more or less.

1
0 248