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:
@@ -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
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user