Submit application

Git for Shared Development Environments

Downloads22
Subscribe
5
Bookmark
5
This application is not supported by InterSystems Corporation. Please be notified that you use it at your own responsibility.
Details
Releases
Reviews
Issues

What's new in this version

Git add packages by @isc-svelury in #79
Removing from source control now works by @isc-svelury in #80
Queue filter by @isc-svelury in #82
compatibility fix for IE + minor bugfix by @isc-svelury in #83
Reload page on login expiration by @isc-svelury in #84
String.substr() is deprecated and substring() works a little differently by @isc-svelury in #87
Updated README with OpenSSH requirement by @isc-svelury in #89
Merge minor UX improvements by @isc-svelury in #94
Automatically stage any changes to sc-list.txt and note in README by @isc-svelury in #96
Stash list, pop, apply, drop; stash files from workspace by @isc-svelury in #95
Background color fix by @isc-svelury in #99
Automatically refresh the list of files in Working Copy after stashing by @isc-svelury in #98
includes is not supported by IE. Use indexOf instead. by @isc-svelury in #97
Preserve filenames for AbstractDocuments by @isc-svelury in #100

git-source-control

Server-side source control extension for Git on InterSystems' platforms

Prerequisites/Dependencies

Installation and Setup


  1. Load this repository into IRIS from the community package registry.
    zpm "install git-source-control"
    
  2. Configure settings by running the following method and answering the prompts:
    d ##class(SourceControl.Git.API).Configure()
    
  3. If using VSCode: Set up isfs server-side editing. First, save your current workspace in which you have the code open. Then, open the .code-workspace file generated by VS Code and add the following to the list of folders:
    {
        "name": "<whatever you want the folder to show up as in the project explorer view>",
        "uri": "isfs://<instance_name>:<namespace_name>/"
    }
    

Basic Use

Studio

Add a file for tracking by right clicking on it in the workspace/project view and choosing Git > Add. This same menu also has options to remove (stop tracking the file), discard changes (revert to the index), or commit changes.

You can browse file history and commit changes through a user interface launched from the top level Git > "Launch Git UI" menu item. There is also a page for configuring settings.

VSCode

The same right click menus as in Studio live under "Server Source Control..." when right clicking in a file (in the editor) or on a file when exploring an isfs folder. The top level "source control" menu is accessible through the command palette or the source control icon in the top right of the editor.

Notes

Security

If you want to interact with remotes from VSCode/Studio directly (e.g., to push/pull), you must use ssh (rather than https), create a public/private key pair to identify the instance (not yourself), configure the private key file for use in Settings, and configure the public key as a deploy key in the remote(s).

sc-list.txt

The sc-list.txt file is used to keep track of files that exist on the filesystem and the server. It is used to determine which files need to be exported from the filesystem or imported into the server. As such, it must be tracked by Git and synced properly to ensure consistent extension behavior across all the distributed repositories. To simplify this, when sc-list.txt is updated, any changes to it are automatically staged and will be committed in the next commit barring any manual intervention.

During Development

⚠️ Whenever any code in this project is updated outside of the server (e.g. after every git pull), you have to run zpm "load <absolute path to git-source-control>". Otherwise the changes won't be reflected on the server. However, if you load git-source-control via the InterSystems package manager and run git pull via the extension itself with the default pull event handler configured, it'll just work.

ZPM installation
zpm "install git-source-control"
Rating
0 (0)
Category
Developer Environment
Works with
InterSystems IRIS
Tags
Info
Version
1.2.0
Last updated
2021-12-16
Repository
Open
Documentation
Open
License
Link