Skip to content

Repository files navigation

Acode Plugin Git SCM

VersionLicenseAcode

Professional Git integration for Acode Editor

FeaturesInstallationRequirementsAPIContributing

Git SCM v2 is a complete rewrite that communicates directly with the native Git binary installed on your system, providing full Git compatibility. This plugin executes real Git commands through Acode's Executor API, ensuring 100% Git compatibility. Unlike JavaScript-based solutions (isomorphic-git), this plugin communicates directly with your system Git installation for full compatibility and optimal performance.

Screenshoots

Source ControlFile Tree DecorationsBranch ManagementGit Command

Requirements

Git must be installed on your system and Acode latest version with Terminal and Executor API support:

apk add git

SSH (Required for GitHub / SSH remotes)

Alpine Linux ships with Dropbear SSH by default, which conflicts with OpenSSH and causes Git authentication issues. This plugin requires OpenSSH for full compatibility.

After installation, generate and configure your SSH keys normally.

Features

See Git support in Acode to learn about the features of this plugin.

Installation

  1. Open Settings
  2. Select Plugins
  3. Search for "Git SCM"
  4. Tap Install
  5. Restart

How It Works

The plugin follows a Shell → Parse → Render workflow. The same architecture as the VS Code Git extension:

StageResponsibility
ShellExecute Git commands via Acode Executor API
ParseProcess stdout/stderr into internal models
RenderDisplay models in UI (resource state, decorations, views)

API

The Git extension exposes an API, reachable by any other plugin.

Git API

Access the Git API in Acode:

  1. Copy src/api/git.d.ts to your plugin's sources;
  2. Include git.d.ts in your plugin's compilation.
  3. Get a hold of the API with the following snippet:
constgitPlugin=acode.require("git");constgitAPI=gitPlugin.getAPI(1);// Get repositoryconstrepo=gitAPI.getRepository("/path/to/repositoy");// repository statusawaitrepo.status();// Create a branchawaitrepo.createBranch("feature-branch",true);// Commitawaitrepo.commit("Your commit message",{all: true});// Push to remoteawaitrepo.push("origin","main");

SCM API

Access the SCM API:

constscm=acode.require("scm");// Create a source control providerconstsourceControl=scm.createSourceControl("my-scm","My SCM","/public");// Create resource groupsconstchanges=sourceControl.createResourceGroup("changes","Changes");// Add resourceschanges.resourceStates=[{resourceUri: "/path/to/file",decorations: {strikeThrough: false,},},];

For a complete API reference see the API reference documentation.

See also type definition files:

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Credits & Attribution

This project (the Acode Git SCM integration using Executor) is licensed under the MIT License. See the LICENSE file.

Parts of this project are derived from or heavily inspired by the Visual Studio Code project and its Git extension:

The execution layer has been reworked to use Acode Executor API rather than VS Code's internal APIs.

Support & Contact


Happy coding ✨

About

Plugin for Acode to provide version control features

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages