Уточнення в історії: main.go зонда й колектора ніколи не були в git
Some checks are pending
CI / web (push) Waiting to run
CI / server (push) Waiting to run
CI / agent (push) Waiting to run

Пастка .gitignore коштувала дорожче, ніж я записав спершу: свіжий клон
не збирався зовсім — у ньому бракувало обох точок входу.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
byrsapty 2026-08-25 12:48:38 +03:00
parent a0eb2ff5f1
commit a0af97c97c

View file

@ -2103,10 +2103,20 @@ TLS знімає Caddy, всередині мережі — h2c. Простро
**`.gitignore` без прив'язки до кореня.** Рядки `netpulse-agent` і
`netpulse-server` мали ловити зібрані бінарники, а ловили ще й каталоги
`cmd/netpulse-agent` і `cmd/netpulse-server`. Наявні файли лишались у
git як уже відстежувані, тож помітно це стало б лише тоді, коли новий
файл команди мовчки не потрапив би в коміт. Виправлено на `/netpulse-*`,
`/server/netpulse-*`, `/agent/netpulse-*`.
`cmd/netpulse-agent` і `cmd/netpulse-server` — з кодом усередині.
Наслідок виявився гіршим за очікуваний: `agent/cmd/netpulse-agent/main.go`
(280 рядків) і `server/cmd/netpulse-server/main.go` (215 рядків) **ніколи
не були в git**. Свіжий клон не збирався — у ньому не було ані точки входу
зонда, ані точки входу колектора. Локально все працювало, бо файли лежали
на диску, і `git status` про них мовчав саме тому, що вони ігнорувались.
Виправлено на `/netpulse-*`, `/server/netpulse-*`, `/agent/netpulse-*`;
обидва файли додано.
Урок: шаблон у `.gitignore` без `/` на початку — це «будь-де в дереві», і
збіг із каталогом він ловить так само охоче, як із файлом. Перевірка
коштує однієї команди: `git check-ignore -v <шлях>`.
### Бекап