Compare commits

..

No commits in common. "f9b6cfe871325eb2d938e170732b2cf946f14a6f" and "cba8856c8516311bc1ea418d2ff283c69406fabc" have entirely different histories.

2 changed files with 2 additions and 26 deletions

View File

@ -219,26 +219,6 @@ ssh "$REMOTE_HOST" "mkdir -p '$REMOTE_DIR'"
# build*/ covers every local build tree, not just build/. They are machine-specific # build*/ covers every local build tree, not just build/. They are machine-specific
# and the device regenerates its own build/ remotely, so shipping build-tui/ etc. # and the device regenerates its own build/ remotely, so shipping build-tui/ etc.
# just pushed tens of MB of x86 object files the device can never use. # just pushed tens of MB of x86 object files the device can never use.
#
# Only what git knows about is copied: the tracked files and new ones not yet
# added, as they are in the working tree, so uncommitted work still deploys.
# Whatever .gitignore names stays behind - build trees, the editor's cache,
# Claude Code worktrees, the 12-bit report's full-size example pictures - which
# made a deploy 505 MB, where 7 MB was needed, while the whole folder was
# mirrored. The set is staged locally so the rsync below keeps its --delete: a
# file git no longer has, or clutter an older deploy left, is removed from the
# tower, and the excludes still protect the tower's own files as before.
git rev-parse --git-dir >/dev/null 2>&1 || {
echo "error: deploy from a git checkout - it decides what is copied" >&2
exit 1
}
STAGE="$(mktemp -d)"
trap 'rm -rf "$STAGE"' EXIT
chmod 0755 "$STAGE" # rsync gives the tower's project folder these permissions
# --ignore-missing-args: a tracked file deleted but not yet committed is listed
git ls-files -z --cached --others --exclude-standard |
rsync -a --from0 --files-from=- --ignore-missing-args ./ "$STAGE/"
echo ">> syncing to $REMOTE_HOST:$REMOTE_DIR" echo ">> syncing to $REMOTE_HOST:$REMOTE_DIR"
rsync -avz --delete \ rsync -avz --delete \
--exclude 'build*/' \ --exclude 'build*/' \
@ -255,7 +235,7 @@ rsync -avz --delete \
--exclude 'config/camera_profiles/**/*.xml' \ --exclude 'config/camera_profiles/**/*.xml' \
--exclude 'config/camera_profiles/**/*.txt' \ --exclude 'config/camera_profiles/**/*.txt' \
--exclude 'images/' \ --exclude 'images/' \
"$STAGE/" "$REMOTE_HOST:$REMOTE_DIR/" ./ "$REMOTE_HOST:$REMOTE_DIR/"
# .git is not synced, so leave the revision beside the tree for the tools that # .git is not synced, so leave the revision beside the tree for the tools that
# run THERE and need to know what they are building (install-tower, flash.sh). # run THERE and need to know what they are building (install-tower, flash.sh).

View File

@ -76,11 +76,7 @@ and which mode it starts in are the tower's own `config.ini` `[Startup] home` /
``` ```
It syncs the tree (leaving `.git` behind, and writing the revision into It syncs the tree (leaving `.git` behind, and writing the revision into
`.revision` beside it instead), then configures and builds **on the tower**. Only `.revision` beside it instead), then configures and builds **on the tower**. The
files git knows about are synced - tracked ones and new ones not yet added, as
they are in the working tree - so nothing `.gitignore` names (build trees, editor
caches, `.claude/worktrees/`, the camera bench's example pictures) reaches the
tower, and a file left there by an older deploy is removed. The
program already running keeps running the old binary until it is restarted: program already running keeps running the old binary until it is restarted:
```bash ```bash