intersystems / git-source-control

Server-side source control hooks for InterSystems' platforms to facilitate use of git, especially in shared and/or remote development environments and for interoperability graphical editors
12 stars 8 forks source link

Support installation pre-IRIS w/o package manager #31

Closed isc-tleavitt closed 1 year ago

isc-tleavitt commented 3 years ago

We want to support 2016.1+ (maybe 2016.2+ for simplicity if JSON ends up mattering) Should also cover generation of some artifact that can be installed on IRIS instances without using the package manager (maybe w/ Studio Project packaging? though that'll be challenging for the web resources)

isc-tleavitt commented 2 years ago

Capturing for the record: Sam Schafer and I spoke with (collectively) at least 4 InterSystems customers interested in running this extension on Caché/Ensemble at Global Summit.

isc-tleavitt commented 2 years ago

Spoke with another customer with the same need today.

isc-tleavitt commented 1 year ago

Spent a bit of time looking into this, and there's a key issue that will need to be addressed for this to work (beyond the actual packaging of the project). Prior to IRIS 2018.1.0, it was not possible to define a subextent of a persistent class from a read-only database. SourceControl.Git.Change defines a subextent of %Studio.SourceControl.Change, which is from CACHELIB, which should be read-only. (Internal change reference: DP-277862)

So for SourceControl.Git.Change to work pre-IRIS, the inheritance should be removed and SourceControl.Git.Change should define its own extent. Ultimately, moving storage to a separate global is a low-risk change without compatibility impact, because the "uncommitted queue" is constantly being updated based on git status calls. (It's also just a good idea anyway.)