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.
69 lines
2.3 KiB
Markdown
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.
|