Overview
Since release 10.1.0, Git Repository connections appear in Explorer. You can browse any branch or tag of a repository read-only, and work in Etlworks' own working copy — edit and save files, upload, see Git status badges, diff your changes, and commit, push, pull and branch — without leaving Etlworks.
This article covers Explorer only. For everything else — projects, deploys, Code from Git, the Git commands — see Data Integration as Code.
Before you start
- Etlworks release 10.1.0 or newer.
- A Git Repository connection (Data Integration as Code — Set up a Git Repository connection).
- Explorer access to that connection to browse. Local actions — editing, uploading, committing, pushing — additionally need Explorer edit rights and Edit on the connection.
Open a repository
- Open Explorer and expand the Git Repository connection in the Connections panel.
- At the top of the node, pick the view: Remote (the repository on the Git host, read-only) or Local (Etlworks' working copy).
- Pick a branch or tag in the selector — the list groups Branches and Tags, and the default branch is marked (default).
- Click the Fetch button (the refresh icon; its tooltip in the Remote view is "Fetch branches and tags from the Git server").
Result: the commit line under the header shows the newest commit of the selected branch or tag — its ID, author, date and subject — and the repository's folders and files are listed below.
Browse the remote (read-only)
The Remote view reads straight from the Git host, through a per-commit cache. Nothing you do here changes the repository.
- Switch branch or tag at any time; the file list and the commit line follow.
- Open a file: it opens read-only in the Raw Data tab, with a Git info line. Files up to 5 MB open as text; binary and larger files are reported, not shown ("The file is larger than 5 MB.").
- Download any file.
- Copy path copies the file's path in the repository.
- Copy reference copies a ready-to-paste Code from Git reference for the file — {{git:<connection>:<path>@<branch or tag>}} — for use in a flow's code fields (see Data Integration as Code — Code from Git).
The Info tab of a selected file or folder has a Git section: Repository, Type ("File (read-only)" or "Folder (read-only)"), Path, View ("Remote" or "Local workspace"), Branch or tag (in Local: Branch), Commit, Author, Message, Size and Status.
Work in the Local workspace
The Local view is Etlworks' own working copy of the repository — the workspace. There is one per tenant and connection, shared by the Explorer and the git-* CLI commands. A workspace that goes unused is removed after the retention period (30 days by default); your pushed work is on the remote, so nothing is lost.
First use: until you fetch, the Local header says "no workspace yet" — click Fetch (tooltip: "Fetch: update the workspace from the remote (creates the workspace the first time)"). A fresh workspace starts on the default branch.
The Local header shows:
- the current branch, with a branch switcher whose list ends with New branch…;
- a summary — "2 changed · 1 to push · 3 to pull" (parts that are zero are left out; "up to date" when there is nothing; "not on the remote yet" for a new branch);
- the buttons Pull, Commit…, Push, and the discard icon (tooltip: "Go back to the remote branch, discarding local changes"). Pull is enabled only when there is something to pull; Push when there are commits to push or the branch isn't on the remote yet; Commit… when there are changes.
Status badges
| Badge | Meaning |
|---|---|
| M | Modified, not committed |
| A | Added, not committed |
| D | Deleted, not committed |
| ?? | New file, not committed |
| ↑ | Committed, not pushed |
| ↓ | Changed on the remote, not pulled |
| • (on a folder) | Something inside differs |
Edit and save a file
- Open a file in the Local view and click Edit.
- Make your changes and click Save (or Cancel).
Result: the file shows an M badge, and the header counts it as changed. Files up to 5 MB can be viewed and saved.
Upload files
Upload files into any folder of the workspace — up to 50 MB per file ("<name> is larger than 50 MB."); .git entries and links are refused. Uploaded files appear with a ?? badge until committed.
Compare your changes
On an open file, vs last commit shows a colored diff against the workspace's last commit, and vs remote against the remote branch — so you can review before committing, or see what pulling would bring in.
Commit, push and pull
Commit
- Click Commit… in the Local header.
- In the Commit changes dialog, type a commit message and tick the files to include — each changed file has its own tick box. The Commit button stays disabled until there is a message and at least one ticked file.
- Click Commit.
Result: the ticked files move from changed to committed — their badges become ↑ — and the header shows commits to push. Nothing is pushed yet.
Push
Push sends your commits to the remote. It never forces: if someone else pushed to the branch since your last pull, the push is rejected — Pull first (or create a new branch to keep your commits, see Branches), then push again.
Pull
Pull brings the remote's new commits into the workspace. It is fast-forward only — nothing is ever merged. If the workspace has local commits the remote doesn't have, push or discard them first.
Discard
The discard icon opens the Discard changes dialog, which lists exactly what will be lost — uncommitted changes and unpushed commits — before you confirm with Discard. The workspace goes back to the remote branch; nothing on the remote changes.
Branches
- Switch branches with the branch switcher in the Local header.
- Create a branch with New branch… at the end of the branch list. The new branch starts from the current one.
- A rejected push: if the remote moved and you don't want to pull over your work, create a new branch with New branch… — your commits come along — push it, and open a pull request on the Git host.
Who can do what
| Action | Needs |
|---|---|
| Browse the Remote and Local views, open and download files, Copy path, Copy reference, Info tab | Explorer access to the connection |
| Fetch, edit and save, upload, commit, push, pull, discard, create branches | Explorer edit rights, and Edit on the connection |
Limits
- File preview, edit and save: 5 MB; larger and binary files are reported, and can be downloaded.
- Upload: 50 MB per file; .git entries and links are refused.
- Workspace retention: an unused workspace is removed after 30 days (Settings → Git → Git Workspace Retention). The remote is never touched.
- One Git command at a time per workspace; a second waits up to 60 seconds ("The repository is busy with another Git command. Try again in a minute.").
Troubleshooting
| Problem or message | Fix |
|---|---|
| "There is no Etlworks workspace for this connection yet. Fetch in the Local view creates it." | Switch to Local and click Fetch. |
| Push rejected: the remote has new commits | Pull first, then push — or use New branch… to keep your commits on a new branch and open a pull request. |
| Authentication errors on Fetch, Pull or Push | Check the connection's credentials — the token for HTTPS, or the private key and Known Hosts File for SSH. Test Connection on the connection shows the exact error. "<label> '<value>' wasn't found among this tenant's uploaded keys. Upload it with the connection's key picker." means the key file isn't among your tenant's uploaded keys. |
| "Git isn't installed on this server. Install git, or set Settings > Git > Git Executable." | Install git on the server (Etlworks' Docker images include it), or point Settings → Git → Git Executable at it. |
| "The repository is busy with another Git command. Try again in a minute." | Another Explorer action or git-* command holds the workspace lock; it clears within a minute. |
Related
- Data Integration as Code — projects, deploys, environments, the git-* CLI commands and Code from Git.
- Etlworks Explorer Overview and User Interface.
- Command reference — Git — the git-* commands that share the workspace with Explorer.