Files
verstack/docs/git-workflow.md
Verstack Local 841a95c56a Complete native workbench, imports, signatures, and catalog management
Save the tested release workflows, RAM media processing, program discovery, FLIRT library, and shared-object maintenance. Add Git exclusions, file attributes, and instructions for a later push using a forwarded SSH agent.
2026-09-13 16:38:57 -05:00

69 lines
2.3 KiB
Markdown

# Git workflow
The source repository keeps the existing `master` branch and history. Its remote is:
```text
ssh://git@git.sx.gy/jordan/verstack.git
```
The repository includes application and plugin source, dependency lockfiles, tests,
synthetic demo files, service templates, and documentation. Firmware, archive data,
downloads and installed tools, generated browser bundles, local configuration,
credentials, and test output are excluded by `.gitignore`. The firmware inventory
documents contain metadata, not the firmware payloads. Git is not an archive-data
backup: preserve the live archive and its keys separately as described in
[operation and recovery](redesign-status.md#operation-and-recovery).
## Push with your forwarded SSH agent
Once your SSH agent is available in the server session, run from the repository:
```sh
git status --short --branch
git remote -v
git push -u origin master
```
SSH uses the credentials available to that session. Repository preparation does
not create a key, copy credentials, change SSH configuration, or contact the
remote. If authentication is unavailable, wait until your forwarded agent is
available before pushing.
Existing commits and the local repository identity use
`Verstack Local <verstack@localhost>`. To use your own identity for future commits,
set it only for this repository:
```sh
git config --local user.name "Your name"
git config --local user.email "Your commit email"
```
## Working from a fresh clone
```sh
git clone ssh://git@git.sx.gy/jordan/verstack.git
cd verstack
```
Follow the [backend setup](../README.md#run) and
[Theia build instructions](../workbench/README.md#build-and-run). Copy
`config.example.json` to the ignored `config.json`, then adjust its absolute plugin
paths for the clone location, Python environment, import roots, and RAM workspace.
Installed tools and the live archive are not part of the clone. Service templates
under `deploy/` assume a checkout at `~/verstack`.
For changes, stage the intended source paths and review them before committing:
```sh
git diff --check
git diff --stat
git add PATHS_TO_CHANGED_SOURCE_FILES
git diff --cached --stat
git diff --cached
git commit
git push
```
The lockfiles are tracked. Build output stays local. `.gitattributes` preserves LF
line endings for text files and binary handling for images and FLIRT SIG files.