Keep weights out of Gitea

This commit is contained in:
2026-06-30 11:53:46 +08:00
parent 98abafa7cc
commit 69f9a8e29b
5 changed files with 28 additions and 25 deletions

5
.gitattributes vendored
View File

@@ -1,5 +0,0 @@
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.engine filter=lfs diff=lfs merge=lfs -text

2
.gitignore vendored
View File

@@ -15,7 +15,7 @@ __pycache__/
.ruff_cache/
.vite/
# Large runtime assets. Track through Git LFS or release/package storage.
# Large runtime assets. Do not push weights to Gitea.
weights/files/
*.pt
*.pth

View File

@@ -50,15 +50,16 @@ cd Seg_Data_Server_Net
python scripts/sync_weights.py --mode copy --hash
```
For repository storage, use Git LFS or a Gitea release/package store:
Weights must remain local to the deployment machine. Do not push `.pt`, `.pth`,
`.onnx`, `.engine`, or `weights/files/` into Gitea. The repository stores only
code, `weights/manifest.json`, and helper scripts. Before pushing, run:
```bash
git lfs install
git lfs track "*.pt" "*.pth" "*.onnx" "*.engine"
scripts/check_no_weight_git.sh
```
If Git LFS is not available on the host or server, keep the copied weights on
the deployment volume and commit only `weights/manifest.json`.
If a deployment machine needs weights, run the sync command locally on that
machine after cloning the code.
## Job Types
@@ -76,4 +77,3 @@ The backend exposes all current Seg capabilities as job types. Examples:
Use `GET /api/catalog` to inspect supported models, algorithms, datasets, and
task types discovered from the existing `Seg/` workspace.

21
scripts/check_no_weight_git.sh Executable file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "${ROOT_DIR}"
tracked_weights="$(git ls-files | grep -E '(^weights/files/|\.pt$|\.pth$|\.onnx$|\.engine$)' || true)"
if [[ -n "${tracked_weights}" ]]; then
echo "ERROR: weight files are tracked by git and must not be pushed to Gitea:" >&2
echo "${tracked_weights}" >&2
exit 1
fi
staged_weights="$(git diff --cached --name-only | grep -E '(^weights/files/|\.pt$|\.pth$|\.onnx$|\.engine$)' || true)"
if [[ -n "${staged_weights}" ]]; then
echo "ERROR: weight files are staged and must not be pushed to Gitea:" >&2
echo "${staged_weights}" >&2
exit 1
fi
echo "OK: no weight files are tracked or staged for Gitea."

View File

@@ -1,13 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
if ! command -v git-lfs >/dev/null 2>&1 && ! git lfs version >/dev/null 2>&1; then
echo "git-lfs is not installed on this host." >&2
echo "Install git-lfs or publish weights through Gitea releases/packages." >&2
exit 1
fi
git lfs install
git lfs track "*.pt" "*.pth" "*.onnx" "*.engine"
git add .gitattributes