From aa5052f073f05ad4a667b7ac44404f6c0952afa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B8=D1=85=D0=B0=D0=B8=D0=BB=20=D0=9A=D1=83=D0=B4?= =?UTF-8?q?=D1=80=D1=8F=D0=B2=D1=86=D0=B5=D0=B2?= Date: Sun, 19 Jul 2026 08:33:14 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20register-submodules.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## πŸ“‹ НовыС ΠΎΠΏΡ†ΠΈΠΈ Π² скриптС | ΠžΠΏΡ†ΠΈΡ | ОписаниС | |-------|----------| | `--ignore=MODE` | Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ игнорирования для Π’Π‘Π•Π₯ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ | | `--ignore-submodule PATH:MODE` | Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ подмодуля | | `--remove-ignore` | Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС настройки игнорирования | ### Π Π΅ΠΆΠΈΠΌΡ‹ игнорирования (`MODE`) | Π Π΅ΠΆΠΈΠΌ | Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ | |-------|------------| | `all` | ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ скрываСт измСнСния Π² подмодулях (Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ) | | `dirty` | Π‘ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… подмодуля | | `untracked` | Π‘ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ | | `none` | ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС измСнСния (ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) | --- ## πŸ“ ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования ```bash # 1. РСгистрация с ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ./register-submodules.sh --ignore=all # 2. РСгистрация с ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ dirty-ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ./register-submodules.sh --ignore=dirty # 3. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ignore Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ подмодуля ./register-submodules.sh --ignore-submodule tools/cam:dirty # 4. Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС настройки игнорирования ./register-submodules.sh --remove-ignore # 5. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ: рСгистрация + ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ./register-submodules.sh --ignore=all --verbose # 6. Волько ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ignore для ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ./register-submodules.sh --ignore=dirty --dry-run ``` --- ## πŸ“Š ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π²ΠΎΠ΄Π° ``` ============================================================ πŸ“¦ РСгистрация Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ============================================================ πŸ”§ Π Π΅ΠΆΠΈΠΌ игнорирования для Π’Π‘Π•Π₯ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ: all β†’ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ скрываСт измСнСния Π² подмодулях β–Ά Поиск Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²... βœ… НайдСно 15 Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² β–Ά РСгистрация ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ... βž• РСгистрация: diadoc.ext.rhana URL: https://git.p7net.ru/1c/diadoc.ext.rhana.git βœ… ΠŸΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ зарСгистрирован: diadoc.ext.rhana βœ… УстановлСн ignore=all для diadoc.ext.rhana βž• РСгистрация: tools/cam URL: https://git.p7net.ru/tools/cam.git βœ… ΠŸΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ зарСгистрирован: tools/cam βœ… УстановлСн ignore=all для tools/cam ... ============================================================ πŸ“Š Бтатистика ============================================================ ВсСго Π½Π°ΠΉΠ΄Π΅Π½ΠΎ: 15 ЗарСгистрировано: 12 ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ: 2 Π‘Π΅Π· URL: 1 πŸ”§ Π Π΅ΠΆΠΈΠΌ игнорирования: all Π€Π°ΠΉΠ» .gitmodules ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½ βœ… ΠŸΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ зарСгистрированы! Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги: 1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ измСнСния: git status 2. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ: git submodule status 3. Π—Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΡŒΡ‚Π΅ измСнСния: git commit -m "ЗарСгистрированы всС ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ" 4. ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π½Π° сСрвСр: git push ============================================================ ``` --- ## πŸ“„ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° `.gitmodules` послС настройки ```ini [submodule "diadoc.ext.rhana"] path = diadoc.ext.rhana url = https://git.p7net.ru/1c/diadoc.ext.rhana.git ignore = all [submodule "tools/cam"] path = tools/cam url = https://git.p7net.ru/tools/cam.git ignore = all ``` Π’Π΅ΠΏΠ΅Ρ€ΡŒ скрипт ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ управляСт подмодулями, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ настройку игнорирования ΠΈΡ… состояния Π² основном Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ! πŸš€ --- register-submodules.sh | 346 ++++++++++++++++++++++++++++------------- 1 file changed, 238 insertions(+), 108 deletions(-) diff --git a/register-submodules.sh b/register-submodules.sh index ce64f07..d1612c3 100755 --- a/register-submodules.sh +++ b/register-submodules.sh @@ -2,18 +2,29 @@ # ============================================================ # register-submodules.sh - РСгистрация всСх Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ # +# Автор: Michael BAG +# Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ: https://git.p7net.ru/tools/git_man +# # ИспользованиС: -# ./register-submodules.sh [--help] [--dry-run] [--force] +# ./register-submodules.sh [--help] [--dry-run] [--force] [--ignore=all|dirty|untracked|none] # # ΠžΠΏΡ†ΠΈΠΈ: -# --help ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ эту справку -# --dry-run Волько ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сдСлано (Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) -# --force ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ -# --verbose ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ +# --help, -h ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ эту справку +# --dry-run Волько ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сдСлано (Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) +# --force, -f ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ +# --ignore=MODE Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ игнорирования для всСх ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ +# all - ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всё (Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ измСнСния) +# dirty - ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… +# untracked - ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ +# none - ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ всС измСнСния (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) +# --ignore-submodule PATH Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ подмодуля +# --verbose, -v ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ +# --quiet, -q ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ошибки) # # ОписаниС: # Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ всС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ (ΠΏΠ°ΠΏΠΊΠΈ с .git), # опрСдСляСт ΠΈΡ… URL ΠΈ рСгистрируСт ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² .gitmodules. +# Π’Π°ΠΊΠΆΠ΅ позволяСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ состояния ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. # ============================================================ set -e # ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΈ ошибкС @@ -31,43 +42,43 @@ show_help() { ./register-submodules.sh [ОПЦИИ] ОПЦИИ: - --help ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ эту справку - --dry-run Волько ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сдСлано (Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) - --force ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ - (удаляСт ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈ создаёт Π·Π°Π½ΠΎΠ²ΠΎ) - --verbose ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ (ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС дСйствия) - --quiet ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ошибки) - -ΠžΠŸΠ˜Π‘ΠΠΠ˜Π•: - Π‘ΠΊΡ€ΠΈΠΏΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ всС Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ (ΠΏΠ°ΠΏΠΊΠΈ с .git), - опрСдСляСт ΠΈΡ… URL ΠΈ рСгистрируСт ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² .gitmodules. - - Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ β€” это ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ - ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Git-рСпозиториями Π²Π½ΡƒΡ‚Ρ€ΠΈ основного. + --help, -h ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ эту справку + --dry-run Волько ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сдСлано (Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ) + --force, -f ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ + (удаляСт ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΈ создаёт Π·Π°Π½ΠΎΠ²ΠΎ) + + --ignore=MODE Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ игнорирования для Π’Π‘Π•Π₯ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ + all - ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всё (ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΊΡ€Ρ‹Ρ‚ΡŒ измСнСния) + dirty - ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ… + untracked - ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹ + none - ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ всС измСнСния (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ) + + --ignore-submodule PATH:MODE Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ подмодуля + ΠŸΡ€ΠΈΠΌΠ΅Ρ€: --ignore-submodule tools/cam:dirty + + --remove-ignore Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС настройки игнорирования ΠΈΠ· .gitmodules + + --verbose, -v ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ + --quiet, -q ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ошибки) ΠŸΠ Π˜ΠœΠ•Π Π«: # Базовая рСгистрация ./register-submodules.sh - # ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сдСлано - ./register-submodules.sh --dry-run + # РСгистрация с ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ всСх ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² подмодулях + ./register-submodules.sh --ignore=all - # ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСрСгистрация всСх ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ - ./register-submodules.sh --force --verbose + # РСгистрация с ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ dirty-ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ + ./register-submodules.sh --ignore=dirty - # Π’ΠΈΡ…ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ошибки) - ./register-submodules.sh --quiet + # Π£Π΄Π°Π»ΠΈΡ‚ΡŒ всС настройки игнорирования + ./register-submodules.sh --remove-ignore -ΠŸΠžΠ‘Π›Π• Π Π•Π“Π˜Π‘Π’Π ΠΠ¦Π˜Π˜: - 1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ измСнСния: git status - 2. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ: git submodule status - 3. Π—Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΡŒΡ‚Π΅ измСнСния: git commit -m "ЗарСгистрированы всС ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ" - 4. ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π½Π° сСрвСр: git push + # Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ignore Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ подмодуля + ./register-submodules.sh --ignore-submodule tools/cam:dirty -ПРИ ΠšΠ›ΠžΠΠ˜Π ΠžΠ’ΠΠΠ˜Π˜ Π Π•ΠŸΠžΠ—Π˜Π’ΠžΠ Π˜Π―: - git clone --recursive - # Или послС клонирования: - git submodule update --init --recursive + # ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π±Π΅Π· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ + ./register-submodules.sh --dry-run --ignore=all ============================================================ EOF @@ -81,6 +92,9 @@ DRY_RUN=false FORCE=false VERBOSE=false QUIET=false +REMOVE_IGNORE=false +IGNORE_MODE="" +IGNORE_SUBMODULE="" # ============================================================ # Π Π°Π·Π±ΠΎΡ€ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки @@ -106,6 +120,18 @@ while [[ $# -gt 0 ]]; do QUIET=true shift ;; + --remove-ignore) + REMOVE_IGNORE=true + shift + ;; + --ignore=*) + IGNORE_MODE="${1#*=}" + shift + ;; + --ignore-submodule=*) + IGNORE_SUBMODULE="${1#*=}" + shift + ;; *) echo -e "\033[0;31m❌ НСизвСстная опция: $1\033[0m" echo " Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ --help для справки" @@ -118,12 +144,11 @@ done # Настройка Π²Ρ‹Π²ΠΎΠ΄Π° # ============================================================ if [ "$QUIET" = true ]; then - # Π’ Ρ‚ΠΈΡ…ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ пСрСнаправляСм всё Π² /dev/null, ΠΊΡ€ΠΎΠΌΠ΅ ошибок - exec 3>&1 # БохраняСм stdout + exec 3>&1 exec >/dev/null 2>&1 fi -# Π¦Π²Π΅Ρ‚Π° для Π²Ρ‹Π²ΠΎΠ΄Π° (Ссли Π½Π΅ Ρ‚ΠΈΡ…ΠΈΠΉ Ρ€Π΅ΠΆΠΈΠΌ) +# Π¦Π²Π΅Ρ‚Π° для Π²Ρ‹Π²ΠΎΠ΄Π° if [ "$QUIET" != true ]; then RED='\033[0;31m' GREEN='\033[0;32m' @@ -131,7 +156,7 @@ if [ "$QUIET" != true ]; then BLUE='\033[0;34m' CYAN='\033[0;36m' MAGENTA='\033[0;35m' - NC='\033[0m' # No Color + NC='\033[0m' else RED=''; GREEN=''; YELLOW=''; BLUE=''; CYAN=''; MAGENTA=''; NC='' fi @@ -176,21 +201,79 @@ log_step() { # ============================================================ log_step "ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° окруТСния..." -# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π² ΠΊΠΎΡ€Π½Π΅ Git-рСпозитория if [ ! -d ".git" ]; then log_error "ВСкущая ΠΏΠ°ΠΏΠΊΠ° Π½Π΅ являСтся Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ" echo " ЗапуститС скрипт ΠΈΠ· корня основного рСпозитория" >&2 exit 1 fi -log_success "ВСкущая ΠΏΠ°ΠΏΠΊΠ° являСтся Git-Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ" - -# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° наличия Git if ! command -v git &> /dev/null; then log_error "Git Π½Π΅ установлСн" exit 1 fi +log_success "ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ" + +# ============================================================ +# Ѐункция установки ignore для подмодуля +# ============================================================ +set_submodule_ignore() { + local path="$1" + local mode="$2" + + if [ "$DRY_RUN" = true ]; then + echo " [DRY-RUN] git config --file .gitmodules submodule.$path.ignore $mode" + return 0 + fi + + git config --file .gitmodules "submodule.$path.ignore" "$mode" 2>/dev/null + return $? +} + +# ============================================================ +# Ѐункция удалСния ignore для подмодуля +# ============================================================ +remove_submodule_ignore() { + local path="$1" + + if [ "$DRY_RUN" = true ]; then + echo " [DRY-RUN] git config --file .gitmodules --unset submodule.$path.ignore" + return 0 + fi + + git config --file .gitmodules --unset "submodule.$path.ignore" 2>/dev/null + return $? +} + +# ============================================================ +# Ѐункция рСгистрации подмодуля +# ============================================================ +register_submodule() { + local repo="$1" + local url="$2" + + if [ "$DRY_RUN" = true ]; then + echo " [DRY-RUN] git submodule add $url $repo" + return 0 + fi + + if [ "$FORCE" = true ]; then + git config --remove-section "submodule.$repo" 2>/dev/null || true + git config --file .gitmodules --remove-section "submodule.$repo" 2>/dev/null || true + if [ -d "$repo" ] && [ -z "$(ls -A "$repo" 2>/dev/null)" ]; then + rm -rf "$repo" + fi + fi + + if git config --file .gitmodules --get "submodule.$repo.url" >/dev/null 2>&1; then + log_debug "ΠŸΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ $repo ΡƒΠΆΠ΅ зарСгистрирован" + return 2 + fi + + git submodule add "$url" "$repo" 2>/dev/null + return $? +} + # ============================================================ # Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ # ============================================================ @@ -208,32 +291,73 @@ if [ "$QUIET" != true ]; then if [ "$FORCE" = true ]; then echo -e "${YELLOW}⚠️ Π Π•Π–Π˜Πœ ΠŸΠ Π˜ΠΠ£Π”Π˜Π’Π•Π›Π¬ΠΠžΠ™ ΠŸΠ•Π Π•Π Π•Π“Π˜Π‘Π’Π ΠΠ¦Π˜Π˜ (--force)${NC}" - echo " Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны" echo "" fi - if [ "$VERBOSE" = true ]; then - echo -e "${BLUE}πŸ” ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ (--verbose)${NC}" + if [ -n "$IGNORE_MODE" ]; then + echo -e "${CYAN}πŸ”§ Π Π΅ΠΆΠΈΠΌ игнорирования для Π’Π‘Π•Π₯ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ: ${MAGENTA}$IGNORE_MODE${NC}" + case "$IGNORE_MODE" in + all) echo " β†’ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ скрываСт измСнСния Π² подмодулях" ;; + dirty) echo " β†’ скрываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния Π² Ρ„Π°ΠΉΠ»Π°Ρ…" ;; + untracked) echo " β†’ скрываСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСотслСТиваСмыС Ρ„Π°ΠΉΠ»Ρ‹" ;; + none) echo " β†’ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС измСнСния (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ)" ;; + *) log_warning "НСизвСстный Ρ€Π΅ΠΆΠΈΠΌ: $IGNORE_MODE. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅: all, dirty, untracked, none" ;; + esac + echo "" + fi + + if [ -n "$IGNORE_SUBMODULE" ]; then + echo -e "${CYAN}πŸ”§ Π Π΅ΠΆΠΈΠΌ игнорирования для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ подмодуля: ${MAGENTA}$IGNORE_SUBMODULE${NC}" + echo "" + fi + + if [ "$REMOVE_IGNORE" = true ]; then + echo -e "${YELLOW}πŸ”§ Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ всСх настроСк игнорирования ΠΈΠ· .gitmodules${NC}" echo "" fi fi # ============================================================ -# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° .gitmodules +# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ настроСк игнорирования (Ссли ΡƒΠΊΠ°Π·Π°Π½ΠΎ) # ============================================================ -if [ -f ".gitmodules" ]; then - if [ "$FORCE" = true ]; then - log_warning "Π€Π°ΠΉΠ» .gitmodules сущСствуСт β€” Π±ΡƒΠ΄Π΅Ρ‚ пСрСзаписан (--force)" - if [ "$DRY_RUN" = false ]; then - git rm --cached .gitmodules 2>/dev/null || true - rm -f .gitmodules +if [ "$REMOVE_IGNORE" = true ]; then + log_step "Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ настроСк игнорирования..." + + if [ -f ".gitmodules" ]; then + # Найти всС сСкции ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ + sections=$(git config --file .gitmodules --name-only --get-regexp "submodule\..*\.ignore" 2>/dev/null | cut -d. -f1-2 | sort -u) + + if [ -n "$sections" ]; then + for section in $sections; do + if [ "$DRY_RUN" = true ]; then + echo " [DRY-RUN] git config --file .gitmodules --unset $section.ignore" + else + git config --file .gitmodules --unset "$section.ignore" 2>/dev/null + log_success "Π£Π΄Π°Π»Ρ‘Π½ ignore для: $section" + fi + done + else + log_info "НСт настроСк игнорирования для удалСния" + fi + + if [ "$DRY_RUN" = false ] && [ -s ".gitmodules" ]; then + git add .gitmodules 2>/dev/null || true + log_success "ИзмСнСния Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² индСкс" fi else - log_info "Π€Π°ΠΉΠ» .gitmodules ΡƒΠΆΠ΅ сущСствуСт" - log_info "Π‘ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… записСй" + log_warning "Π€Π°ΠΉΠ» .gitmodules Π½Π΅ сущСствуСт" + fi + + if [ "$QUIET" != true ]; then + echo "" + echo -e "${GREEN}βœ… Настройки игнорирования ΡƒΠ΄Π°Π»Π΅Π½Ρ‹${NC}" + echo "" + fi + + # Если Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ β€” Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ + if [ "$IGNORE_MODE" = "" ] && [ "$IGNORE_SUBMODULE" = "" ] && [ "$FORCE" = false ]; then + exit 0 fi -else - log_info "Π€Π°ΠΉΠ» .gitmodules Π½Π΅ сущСствуСт β€” Π±ΡƒΠ΄Π΅Ρ‚ создан" fi # ============================================================ @@ -241,23 +365,16 @@ fi # ============================================================ log_step "Поиск Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²..." -# Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» для хранСния ΠΏΡƒΡ‚Π΅ΠΉ TEMP_FILE=$(mktemp) - -# Найти всС ΠΏΠ°ΠΏΠΊΠΈ с .git (ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ сам .git) find . -type d -name ".git" -exec dirname {} \; 2>/dev/null | sort > "$TEMP_FILE" - -# Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ ΠΈΠ· списка sed -i '/^\.$/d' "$TEMP_FILE" 2>/dev/null || true -# ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, Π΅ΡΡ‚ΡŒ Π»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ if [ ! -s "$TEMP_FILE" ]; then log_warning "Π’Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ‹" rm -f "$TEMP_FILE" exit 0 fi -# ΠŸΠΎΠ΄ΡΡ‡Ρ‘Ρ‚ количСства TOTAL=$(wc -l < "$TEMP_FILE" | tr -d ' ') log_success "НайдСно $TOTAL Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π²" @@ -270,41 +387,6 @@ if [ "$VERBOSE" = true ]; then echo "" fi -# ============================================================ -# Ѐункция рСгистрации подмодуля -# ============================================================ -register_submodule() { - local repo="$1" - local url="$2" - - if [ "$DRY_RUN" = true ]; then - echo " [DRY-RUN] git submodule add $url $repo" - return 0 - fi - - # Если ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ пСрСрСгистрация β€” удаляСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ - if [ "$FORCE" = true ]; then - # УдаляСм ΠΈΠ· .git/config - git config --remove-section "submodule.$repo" 2>/dev/null || true - # УдаляСм ΠΈΠ· .gitmodules - git config --file .gitmodules --remove-section "submodule.$repo" 2>/dev/null || true - # УдаляСм ΠΏΠ°ΠΏΠΊΡƒ подмодуля, Ссли ΠΎΠ½Π° пуста - if [ -d "$repo" ] && [ -z "$(ls -A "$repo" 2>/dev/null)" ]; then - rm -rf "$repo" - fi - fi - - # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ, Π½Π΅ зарСгистрирован Π»ΠΈ ΡƒΠΆΠ΅ - if git config --file .gitmodules --get "submodule.$repo.url" >/dev/null 2>&1; then - log_debug "ΠŸΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ $repo ΡƒΠΆΠ΅ зарСгистрирован" - return 2 - fi - - # РСгистрация - git submodule add "$url" "$repo" 2>/dev/null - return $? -} - # ============================================================ # Основной Ρ†ΠΈΠΊΠ» рСгистрации # ============================================================ @@ -316,12 +398,10 @@ ERRORS=0 NO_URL=0 while read repo; do - # ΠŸΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ пустыС строки [ -z "$repo" ] && continue log_debug "ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°: $repo" - # ΠŸΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ URL if [ -d "$repo" ]; then cd "$repo" 2>/dev/null if [ $? -ne 0 ]; then @@ -347,7 +427,6 @@ while read repo; do continue fi - # РСгистрация if [ "$QUIET" != true ]; then echo -e "${GREEN}βž• РСгистрация:${NC} $repo" echo -e " ${CYAN}URL:${NC} $url" @@ -360,6 +439,14 @@ while read repo; do 0) log_success "ΠŸΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ зарСгистрирован: $repo" REGISTERED=$((REGISTERED + 1)) + + # Если Π·Π°Π΄Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ игнорирования для всСх ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ + if [ -n "$IGNORE_MODE" ]; then + set_submodule_ignore "$repo" "$IGNORE_MODE" + if [ $? -eq 0 ]; then + log_debug "УстановлСн ignore=$IGNORE_MODE для $repo" + fi + fi ;; 2) log_debug "ΠŸΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ (ΡƒΠΆΠ΅ зарСгистрирован): $repo" @@ -375,7 +462,40 @@ while read repo; do done < "$TEMP_FILE" +# ============================================================ +# Настройка игнорирования для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ подмодуля +# ============================================================ +if [ -n "$IGNORE_SUBMODULE" ]; then + # Π€ΠΎΡ€ΠΌΠ°Ρ‚: path:mode + if [[ "$IGNORE_SUBMODULE" =~ ^([^:]+):(.+)$ ]]; then + SUBMODULE_PATH="${BASH_REMATCH[1]}" + SUBMODULE_MODE="${BASH_REMATCH[2]}" + + log_step "Настройка игнорирования для: $SUBMODULE_PATH (Ρ€Π΅ΠΆΠΈΠΌ: $SUBMODULE_MODE)" + + # ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, сущСствуСт Π»ΠΈ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ + if git config --file .gitmodules --get "submodule.$SUBMODULE_PATH.url" >/dev/null 2>&1; then + set_submodule_ignore "$SUBMODULE_PATH" "$SUBMODULE_MODE" + if [ $? -eq 0 ]; then + log_success "УстановлСн ignore=$SUBMODULE_MODE для $SUBMODULE_PATH" + else + log_error "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ignore для $SUBMODULE_PATH" + ERRORS=$((ERRORS + 1)) + fi + else + log_warning "ΠŸΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΡŒ $SUBMODULE_PATH Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ Π² .gitmodules" + fi + else + log_error "НСвСрный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ для --ignore-submodule. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅: path:mode" + log_error "ΠŸΡ€ΠΈΠΌΠ΅Ρ€: --ignore-submodule tools/cam:dirty" + ERRORS=$((ERRORS + 1)) + fi + echo "" +fi + +# ============================================================ # ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° +# ============================================================ rm -f "$TEMP_FILE" # ============================================================ @@ -393,13 +513,19 @@ if [ "$QUIET" != true ]; then if [ $ERRORS -gt 0 ]; then echo -e " ${RED}Ошибок:${NC} $ERRORS" fi - echo "" + + if [ -n "$IGNORE_MODE" ]; then + echo "" + echo -e "${CYAN}πŸ”§ Π Π΅ΠΆΠΈΠΌ игнорирования:${NC} $IGNORE_MODE" + echo " Π€Π°ΠΉΠ» .gitmodules ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½" + fi if [ "$DRY_RUN" = true ]; then + echo "" echo -e "${YELLOW}⚠️ Π­Ρ‚ΠΎ Π±Ρ‹Π» просмотр (--dry-run). ИзмСнСния НЕ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹.${NC}" echo " Π£Π±Π΅Ρ€ΠΈΡ‚Π΅ --dry-run для выполнСния." - echo "" fi + echo "" fi # ============================================================ @@ -407,7 +533,7 @@ fi # ============================================================ if [ "$DRY_RUN" = false ] && [ $REGISTERED -gt 0 ]; then if [ "$QUIET" != true ]; then - echo -e "${GREEN}βœ… ВсС ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ зарСгистрированы!${NC}" + echo -e "${GREEN}βœ… ΠŸΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ зарСгистрированы!${NC}" echo "" echo -e "${CYAN}Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:${NC}" echo " 1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ измСнСния: git status" @@ -415,13 +541,19 @@ if [ "$DRY_RUN" = false ] && [ $REGISTERED -gt 0 ]; then echo " 3. Π—Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΡŒΡ‚Π΅ измСнСния: git commit -m \"ЗарСгистрированы всС ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»ΠΈ\"" echo " 4. ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π½Π° сСрвСр: git push" echo "" - echo -e "${YELLOW}⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:${NC} ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:" + echo -e "${YELLOW}⚠️ ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:${NC}" echo " git submodule update --init --recursive" echo "" fi -elif [ "$DRY_RUN" = false ] && [ $REGISTERED -eq 0 ] && [ $SKIPPED -eq 0 ]; then +elif [ "$DRY_RUN" = false ] && [ -n "$IGNORE_MODE" ]; then if [ "$QUIET" != true ]; then - echo -e "${YELLOW}⚠️ НС Π½Π°ΠΉΠ΄Π΅Π½ΠΎ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для рСгистрации${NC}" + echo -e "${GREEN}βœ… Настройки игнорирования ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹!${NC}" + echo "" + echo -e "${CYAN}Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:${NC}" + echo " 1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ измСнСния: git status" + echo " 2. Π—Π°ΠΊΠΎΠΌΠΌΠΈΡ‚ΡŒΡ‚Π΅ измСнСния: git commit -m \"НастроСн ignore для ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ\"" + echo " 3. ΠžΡ‚ΠΏΡ€Π°Π²ΡŒΡ‚Π΅ Π½Π° сСрвСр: git push" + echo "" fi fi @@ -431,5 +563,3 @@ if [ "$QUIET" != true ]; then fi exit 0 - -