Release 1.2.0: setup-1c-repo for 1C Configurator dumps (EOL/encoding/ignore).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
5 changed files with 954 additions and 8 deletions
+75 -8
View File
@@ -1,6 +1,6 @@
# Git Management Tools (`git_man`)
**Версия:** 1.0.6
**Версия:** 1.2.0
Набор скриптов и утилит для управления Git-репозиториями, работы с подмодулями и автоматизации повседневных задач.
@@ -10,6 +10,7 @@
- [Описание](#описание)
- [Скрипты](#скрипты)
- [setup-1c-repo](#setup-1c-repo--настройка-репозитория-под-1с)
- [register-submodules.sh](#register-submodulessh)
- [Установка](#установка)
- [Использование](#использование)
@@ -22,19 +23,81 @@
## 📖 Описание
Данный репозиторий содержит вспомогательные скрипты для работы с Git в проектах, где используется множество вложенных репозиториев (монорепозиторий с подмодулями).
Данный репозиторий содержит вспомогательные скрипты для работы с Git в проектах, где используется множество вложенных репозиториев (монорепозиторий с подмодулями), а также настройка репозиториев под выгрузку конфигуратора 1С.
Основные задачи:
- Автоматическая регистрация вложенных репозиториев как подмодулей
- Снятие путей из `.gitignore` при регистрации
- Централизованное управление множеством репозиториев
- Настройка игнорирования состояния подмодулей в основном репозитории
- Настройка кодировки, EOL и ignore для проектов 1С (выгрузка конфигуратора)
- Автоматизация рутинных операций
---
## 🛠️ Скрипты
### `setup-1c-repo` — настройка репозитория под 1С
**Описание:**
Включает локальные настройки Git в **текущей папке** (каталог запуска) под выгрузку конфигурации/расширения из **конфигуратора 1С**: UTF-8 с BOM, CRLF в рабочей копии для файлов выгрузки, корректные пути с кириллицей, длинные пути, `.gitattributes` и `.gitignore`.
| Платформа | Скрипт |
|-----------|--------|
| **Windows** | `setup-1c-repo.ps1` или `setup-1c-repo.cmd` |
| **macOS / Linux** | `setup-1c-repo.sh` |
**Использование (Windows):**
```powershell
.\setup-1c-repo.ps1
.\setup-1c-repo.ps1 -Force -Renormalize
.\setup-1c-repo.cmd -Init -DryRun
```
**Использование (macOS / Linux):**
```bash
./setup-1c-repo.sh
./setup-1c-repo.sh --force --renormalize
./setup-1c-repo.sh --init --dry-run
```
**Опции:**
| Опция (sh / ps1) | Описание |
|------------------|----------|
| `--help` / `-Help` | Справка |
| `--version` / `-Version` | Версия скрипта (`1.2.0`) |
| `--dry-run` / `-DryRun` | Только показать действия |
| `--force` / `-Force` | Перезаписать `.gitattributes` и `.gitignore` |
| `--init` / `-Init` | `git init`, если папка ещё не репозиторий |
| `--renormalize` / `-Renormalize` | `git add --renormalize .` после настройки |
| `--no-gitignore` / `-NoGitignore` | Не трогать `.gitignore` |
| `--verbose` / `-Verbose` | Подробный вывод |
| `--quiet` / `-Quiet` | Только ошибки |
**Что применяется локально (`git config --local`):**
| Параметр | Значение | Зачем |
|----------|----------|--------|
| `core.quotepath` | `false` | Кириллические пути без `\320\…` |
| `core.longpaths` | `true` | Длинные пути (Windows / глубокие деревья 1С) |
| `gui.encoding` | `utf-8` | Кодировка GUI |
| `i18n.commitEncoding` | `utf-8` | Кодировка сообщений коммитов |
| `core.autocrlf` | `false` | EOL только через `.gitattributes` |
| `core.safecrlf` | `warn` | Предупреждение о смешанных EOL |
| `diff.renames` | `false` | Как в рекомендациях 1С:ГитКонвертер |
| `core.precomposeunicode` | `true` | Только macOS (NFD/NFC для имён файлов) |
**`.gitattributes`:** для `*.bsl`, `*.xml`, `*.txt`, `*.html` и др. файлов выгрузки — `text eol=crlf` (рабочая копия как у конфигуратора). Бинарники (`*.cf`, `*.bin`, картинки, …) — `binary`. BOM UTF-8 хранится как часть содержимого файла.
**После запуска:**
```bash
git add .gitattributes .gitignore
git commit -m "Настройки Git для выгрузки конфигуратора 1С"
```
---
### `register-submodules.sh`
**Описание:**
@@ -121,8 +184,10 @@ git submodule update --init --recursive
git_man/
├── README.md # Этот файл
├── CHANGELOG.md # История изменений
├── register-submodules.sh # Скрипт регистрации подмодулей
── scripts/ # Дополнительные скрипты (планируется)
├── register-submodules.sh # Регистрация вложенных репозиториев как подмодулей
── setup-1c-repo.sh # Настройка репозитория под 1С (macOS / Linux)
├── setup-1c-repo.ps1 # Настройка репозитория под 1С (Windows PowerShell)
└── setup-1c-repo.cmd # Обёртка Windows для .ps1
```
---
@@ -156,9 +221,9 @@ git submodule add https://git.p7net.ru/tools/git_man.git tools/git_man
## 📋 Требования
- **Git** (версия 1.8.5 или выше)
- **Bash** (4.0+)
- **Unix-подобная ОС** (Linux, macOS) или **WSL** на Windows
- **Git** (версия 1.8.5 или выше; для `--renormalize` рекомендуется 2.16+)
- **Bash** (4.0+) — для `*.sh` на Linux / macOS / WSL
- **PowerShell** 5.1+ или 7+ — для `setup-1c-repo.ps1` / `.cmd` на Windows
---
@@ -183,18 +248,20 @@ git submodule add https://git.p7net.ru/tools/git_man.git tools/git_man
## 📌 История версий
Текущая версия: **1.0.6** (2026-07-20).
Текущая версия: **1.2.0** (2026-07-27).
Кратко по релизам — см. [CHANGELOG.md](./CHANGELOG.md).
| Версия | Дата | Суть |
|--------|------|------|
| **1.2.0** | 2026-07-27 | `setup-1c-repo` — настройки Git под выгрузку конфигуратора 1С |
| **1.0.6** | 2026-07-20 | Автоснятие из `.gitignore`, fix macOS, `--version` |
| **1.1.0** | 2025-07-19 | Настройка `ignore` для подмодулей |
| **1.0.0** | 2025-07-19 | Первый стабильный релиз |
Проверка версии:
```bash
./setup-1c-repo.sh --version
./register-submodules.sh --version
```