shared/platform-tools was a git submodule. On this branch it is a plain
directory of tracked files, frozen at ea3616abae30106df283e73a3e2f9e5bb0e6ae90
— the same commit fotografia.andmore.pt pins. Contents are byte-identical to
that tree, verified blob by blob.
The submodule caused every deployment failure this site has had:
- .gitmodules named no `branch`, so the update fell back to
refs/remotes/origin/HEAD — a ref a plain server-side clone never writes.
"Atualizar submódulo" failed with "Unable to find refs/remotes/origin/HEAD
revision in submodule path".
- Its URL was http://, which the origin answers with 523.
- This install is deployed by uploading files, and a submodule is invisible
to that. The tree moved forward while shared/platform-tools stayed on the
old pin, config/functions_secrets.php died on a missing compat_secrets.php,
and the whole site — public pages included — went down.
Each of those was separately fixable. Together they mean a second repository
nobody can see from the deployment path, gating whether the first one boots. A
plain directory deploys like every other file and cannot fall out of step.
The cost is that platform-tools updates no longer arrive by bumping a pin; they
are a copy-over-and-commit. shared/platform-tools/VENDORED.md records the
upstream SHA, the procedure, and which four files differ from upstream in line
endings only (social/*.js, .css, functions_publications.php — CRLF upstream,
normalised to LF here; content otherwise identical).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
37 lines
702 B
Plaintext
37 lines
702 B
Plaintext
# OS
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Editor / IDE
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
|
|
# Secrets
|
|
.env
|
|
.env.local
|
|
.env.*.local
|
|
|
|
# Logs
|
|
*.log
|
|
|
|
# AI assistant files — not part of the project
|
|
CLAUDE.md
|
|
AGENTS.md
|
|
.claude/
|
|
GEMINI.md
|
|
.gemini/
|
|
.cursorrules
|
|
.cursorignore
|
|
.aider*
|
|
AIDER.md
|
|
COPILOT*.md
|
|
|
|
# Índice de países da analítica: ~5 MB, gerado por bin/geo-build-index.php.
|
|
# Não é versionado -- um binário deste tamanho refrescado mensalmente inchava o
|
|
# histórico. Sem ele a analítica regista o país como desconhecido, que é um
|
|
# degradar aceitável; as listas do BLOQUEIO por país (pt.v4/pt.v6) essas ficam
|
|
# versionadas, porque aí dados em falta seriam uma decisão de segurança.
|
|
data/geo/country-index.*
|