Обновить register-submodules.sh

## 📋 Новые опции в скрипте

| Опция | Описание |
|-------|----------|
| `--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
```

Теперь скрипт полностью управляет подмодулями, включая настройку игнорирования их состояния в основном репозитории! 🚀
This commit is contained in:
+231 -101
View File
@@ -2,18 +2,29 @@
# ============================================================ # ============================================================
# register-submodules.sh - Регистрация всех вложенных репозиториев как подмодулей # register-submodules.sh - Регистрация всех вложенных репозиториев как подмодулей
# #
# Автор: Michael BAG <mk@p7net.ru>
# Репозиторий: 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 Показать эту справку # --help, -h Показать эту справку
# --dry-run Только показать, что будет сделано (без изменений) # --dry-run Только показать, что будет сделано (без изменений)
# --force Принудительно перерегистрировать подмодули # --force, -f Принудительно перерегистрировать подмодули
# --verbose Подробный вывод # --ignore=MODE Установить режим игнорирования для всех подмодулей
# all - игнорировать всё (не показывать изменения)
# dirty - игнорировать только изменения в файлах
# untracked - игнорировать только неотслеживаемые файлы
# none - показывать все изменения (по умолчанию)
# --ignore-submodule PATH Установить игнорирование для конкретного подмодуля
# --verbose, -v Подробный вывод
# --quiet, -q Минимальный вывод (только ошибки)
# #
# Описание: # Описание:
# Скрипт находит все вложенные репозитории (папки с .git), # Скрипт находит все вложенные репозитории (папки с .git),
# определяет их URL и регистрирует как подмодули в .gitmodules. # определяет их URL и регистрирует как подмодули в .gitmodules.
# Также позволяет настроить игнорирование состояния подмодулей.
# ============================================================ # ============================================================
set -e # Остановка при ошибке set -e # Остановка при ошибке
@@ -31,43 +42,43 @@ show_help() {
./register-submodules.sh [ОПЦИИ] ./register-submodules.sh [ОПЦИИ]
ОПЦИИ: ОПЦИИ:
--help Показать эту справку --help, -h Показать эту справку
--dry-run Только показать, что будет сделано (без изменений) --dry-run Только показать, что будет сделано (без изменений)
--force Принудительно перерегистрировать подмодули --force, -f Принудительно перерегистрировать подмодули
(удаляет существующие и создаёт заново) (удаляет существующие и создаёт заново)
--verbose Подробный вывод (показывает все действия)
--quiet Минимальный вывод (только ошибки)
ОПИСАНИЕ: --ignore=MODE Установить режим игнорирования для ВСЕХ подмодулей
Скрипт находит все вложенные репозитории (папки с .git), all - игнорировать всё (полностью скрыть изменения)
определяет их URL и регистрирует как подмодули в .gitmodules. dirty - игнорировать только изменения в файлах
untracked - игнорировать только неотслеживаемые файлы
none - показывать все изменения (по умолчанию)
Вложенные репозитории — это папки, которые являются --ignore-submodule PATH:MODE Установить режим для конкретного подмодуля
самостоятельными Git-репозиториями внутри основного. Пример: --ignore-submodule tools/cam:dirty
--remove-ignore Удалить все настройки игнорирования из .gitmodules
--verbose, -v Подробный вывод
--quiet, -q Минимальный вывод (только ошибки)
ПРИМЕРЫ: ПРИМЕРЫ:
# Базовая регистрация # Базовая регистрация
./register-submodules.sh ./register-submodules.sh
# Просмотр того, что будет сделано # Регистрация с игнорированием всех изменений в подмодулях
./register-submodules.sh --dry-run ./register-submodules.sh --ignore=all
# Принудительная перерегистрация всех подмодулей # Регистрация с игнорированием только dirty-изменений
./register-submodules.sh --force --verbose ./register-submodules.sh --ignore=dirty
# Тихий режим (только ошибки) # Удалить все настройки игнорирования
./register-submodules.sh --quiet ./register-submodules.sh --remove-ignore
ПОСЛЕ РЕГИСТРАЦИИ: # Установить ignore только для конкретного подмодуля
1. Проверьте изменения: git status ./register-submodules.sh --ignore-submodule tools/cam:dirty
2. Посмотрите подмодули: git submodule status
3. Закоммитьте изменения: git commit -m "Зарегистрированы все подмодули"
4. Отправьте на сервер: git push
ПРИ КЛОНИРОВАНИИ РЕПОЗИТОРИЯ: # Просмотр без изменений
git clone --recursive <URL> ./register-submodules.sh --dry-run --ignore=all
# Или после клонирования:
git submodule update --init --recursive
============================================================ ============================================================
EOF EOF
@@ -81,6 +92,9 @@ DRY_RUN=false
FORCE=false FORCE=false
VERBOSE=false VERBOSE=false
QUIET=false QUIET=false
REMOVE_IGNORE=false
IGNORE_MODE=""
IGNORE_SUBMODULE=""
# ============================================================ # ============================================================
# Разбор аргументов командной строки # Разбор аргументов командной строки
@@ -106,6 +120,18 @@ while [[ $# -gt 0 ]]; do
QUIET=true QUIET=true
shift 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 -e "\033[0;31m❌ Неизвестная опция: $1\033[0m"
echo " Используйте --help для справки" echo " Используйте --help для справки"
@@ -118,12 +144,11 @@ done
# Настройка вывода # Настройка вывода
# ============================================================ # ============================================================
if [ "$QUIET" = true ]; then if [ "$QUIET" = true ]; then
# В тихом режиме перенаправляем всё в /dev/null, кроме ошибок exec 3>&1
exec 3>&1 # Сохраняем stdout
exec >/dev/null 2>&1 exec >/dev/null 2>&1
fi fi
# Цвета для вывода (если не тихий режим) # Цвета для вывода
if [ "$QUIET" != true ]; then if [ "$QUIET" != true ]; then
RED='\033[0;31m' RED='\033[0;31m'
GREEN='\033[0;32m' GREEN='\033[0;32m'
@@ -131,7 +156,7 @@ if [ "$QUIET" != true ]; then
BLUE='\033[0;34m' BLUE='\033[0;34m'
CYAN='\033[0;36m' CYAN='\033[0;36m'
MAGENTA='\033[0;35m' MAGENTA='\033[0;35m'
NC='\033[0m' # No Color NC='\033[0m'
else else
RED=''; GREEN=''; YELLOW=''; BLUE=''; CYAN=''; MAGENTA=''; NC='' RED=''; GREEN=''; YELLOW=''; BLUE=''; CYAN=''; MAGENTA=''; NC=''
fi fi
@@ -176,21 +201,79 @@ log_step() {
# ============================================================ # ============================================================
log_step "Проверка окружения..." log_step "Проверка окружения..."
# Проверка, что мы в корне Git-репозитория
if [ ! -d ".git" ]; then if [ ! -d ".git" ]; then
log_error "Текущая папка не является Git-репозиторием" log_error "Текущая папка не является Git-репозиторием"
echo " Запустите скрипт из корня основного репозитория" >&2 echo " Запустите скрипт из корня основного репозитория" >&2
exit 1 exit 1
fi fi
log_success "Текущая папка является Git-репозиторием"
# Проверка наличия Git
if ! command -v git &> /dev/null; then if ! command -v git &> /dev/null; then
log_error "Git не установлен" log_error "Git не установлен"
exit 1 exit 1
fi 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 if [ "$FORCE" = true ]; then
echo -e "${YELLOW}⚠️ РЕЖИМ ПРИНУДИТЕЛЬНОЙ ПЕРЕРЕГИСТРАЦИИ (--force)${NC}" echo -e "${YELLOW}⚠️ РЕЖИМ ПРИНУДИТЕЛЬНОЙ ПЕРЕРЕГИСТРАЦИИ (--force)${NC}"
echo " Существующие подмодули будут перезаписаны"
echo "" echo ""
fi fi
if [ "$VERBOSE" = true ]; then if [ -n "$IGNORE_MODE" ]; then
echo -e "${BLUE}🔍 Подробный режим (--verbose)${NC}" 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 "" echo ""
fi fi
fi fi
# ============================================================ # ============================================================
# Проверка .gitmodules # Удаление настроек игнорирования (если указано)
# ============================================================ # ============================================================
if [ "$REMOVE_IGNORE" = true ]; then
log_step "Удаление настроек игнорирования..."
if [ -f ".gitmodules" ]; then if [ -f ".gitmodules" ]; then
if [ "$FORCE" = true ]; then # Найти все секции подмодулей
log_warning "Файл .gitmodules существует — будет перезаписан (--force)" sections=$(git config --file .gitmodules --name-only --get-regexp "submodule\..*\.ignore" 2>/dev/null | cut -d. -f1-2 | sort -u)
if [ "$DRY_RUN" = false ]; then
git rm --cached .gitmodules 2>/dev/null || true if [ -n "$sections" ]; then
rm -f .gitmodules 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 fi
else else
log_info "Файл .gitmodules уже существует" log_warning "Файл .gitmodules не существует"
log_info "Будет выполнено обновление существующих записей" fi
if [ "$QUIET" != true ]; then
echo ""
echo -e "${GREEN}✅ Настройки игнорирования удалены${NC}"
echo ""
fi
# Если только удаление — выходим
if [ "$IGNORE_MODE" = "" ] && [ "$IGNORE_SUBMODULE" = "" ] && [ "$FORCE" = false ]; then
exit 0
fi fi
else
log_info "Файл .gitmodules не существует — будет создан"
fi fi
# ============================================================ # ============================================================
@@ -241,23 +365,16 @@ fi
# ============================================================ # ============================================================
log_step "Поиск вложенных репозиториев..." log_step "Поиск вложенных репозиториев..."
# Временный файл для хранения путей
TEMP_FILE=$(mktemp) TEMP_FILE=$(mktemp)
# Найти все папки с .git (исключая сам .git)
find . -type d -name ".git" -exec dirname {} \; 2>/dev/null | sort > "$TEMP_FILE" find . -type d -name ".git" -exec dirname {} \; 2>/dev/null | sort > "$TEMP_FILE"
# Удалить корневой репозиторий из списка
sed -i '/^\.$/d' "$TEMP_FILE" 2>/dev/null || true sed -i '/^\.$/d' "$TEMP_FILE" 2>/dev/null || true
# Проверка, есть ли что-то найдено
if [ ! -s "$TEMP_FILE" ]; then if [ ! -s "$TEMP_FILE" ]; then
log_warning "Вложенные репозитории не найдены" log_warning "Вложенные репозитории не найдены"
rm -f "$TEMP_FILE" rm -f "$TEMP_FILE"
exit 0 exit 0
fi fi
# Подсчёт количества
TOTAL=$(wc -l < "$TEMP_FILE" | tr -d ' ') TOTAL=$(wc -l < "$TEMP_FILE" | tr -d ' ')
log_success "Найдено $TOTAL вложенных репозиториев" log_success "Найдено $TOTAL вложенных репозиториев"
@@ -270,41 +387,6 @@ if [ "$VERBOSE" = true ]; then
echo "" echo ""
fi 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 NO_URL=0
while read repo; do while read repo; do
# Пропустить пустые строки
[ -z "$repo" ] && continue [ -z "$repo" ] && continue
log_debug "Обработка: $repo" log_debug "Обработка: $repo"
# Получить URL
if [ -d "$repo" ]; then if [ -d "$repo" ]; then
cd "$repo" 2>/dev/null cd "$repo" 2>/dev/null
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
@@ -347,7 +427,6 @@ while read repo; do
continue continue
fi fi
# Регистрация
if [ "$QUIET" != true ]; then if [ "$QUIET" != true ]; then
echo -e "${GREEN} Регистрация:${NC} $repo" echo -e "${GREEN} Регистрация:${NC} $repo"
echo -e " ${CYAN}URL:${NC} $url" echo -e " ${CYAN}URL:${NC} $url"
@@ -360,6 +439,14 @@ while read repo; do
0) 0)
log_success "Подмодуль зарегистрирован: $repo" log_success "Подмодуль зарегистрирован: $repo"
REGISTERED=$((REGISTERED + 1)) 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) 2)
log_debug "Пропущен (уже зарегистрирован): $repo" log_debug "Пропущен (уже зарегистрирован): $repo"
@@ -375,7 +462,40 @@ while read repo; do
done < "$TEMP_FILE" 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" rm -f "$TEMP_FILE"
# ============================================================ # ============================================================
@@ -393,13 +513,19 @@ if [ "$QUIET" != true ]; then
if [ $ERRORS -gt 0 ]; then if [ $ERRORS -gt 0 ]; then
echo -e " ${RED}Ошибок:${NC} $ERRORS" echo -e " ${RED}Ошибок:${NC} $ERRORS"
fi fi
if [ -n "$IGNORE_MODE" ]; then
echo "" echo ""
echo -e "${CYAN}🔧 Режим игнорирования:${NC} $IGNORE_MODE"
echo " Файл .gitmodules обновлён"
fi
if [ "$DRY_RUN" = true ]; then if [ "$DRY_RUN" = true ]; then
echo ""
echo -e "${YELLOW}⚠️ Это был просмотр (--dry-run). Изменения НЕ применены.${NC}" echo -e "${YELLOW}⚠️ Это был просмотр (--dry-run). Изменения НЕ применены.${NC}"
echo " Уберите --dry-run для выполнения." echo " Уберите --dry-run для выполнения."
echo ""
fi fi
echo ""
fi fi
# ============================================================ # ============================================================
@@ -407,7 +533,7 @@ fi
# ============================================================ # ============================================================
if [ "$DRY_RUN" = false ] && [ $REGISTERED -gt 0 ]; then if [ "$DRY_RUN" = false ] && [ $REGISTERED -gt 0 ]; then
if [ "$QUIET" != true ]; then if [ "$QUIET" != true ]; then
echo -e "${GREEN}Все подмодули зарегистрированы!${NC}" echo -e "${GREEN}Подмодули зарегистрированы!${NC}"
echo "" echo ""
echo -e "${CYAN}Следующие шаги:${NC}" echo -e "${CYAN}Следующие шаги:${NC}"
echo " 1. Проверьте изменения: git status" echo " 1. Проверьте изменения: git status"
@@ -415,13 +541,19 @@ if [ "$DRY_RUN" = false ] && [ $REGISTERED -gt 0 ]; then
echo " 3. Закоммитьте изменения: git commit -m \"Зарегистрированы все подмодули\"" echo " 3. Закоммитьте изменения: git commit -m \"Зарегистрированы все подмодули\""
echo " 4. Отправьте на сервер: git push" echo " 4. Отправьте на сервер: git push"
echo "" echo ""
echo -e "${YELLOW}⚠️ Внимание:${NC} При первом клонировании выполните:" echo -e "${YELLOW}⚠️ При первом клонировании выполните:${NC}"
echo " git submodule update --init --recursive" echo " git submodule update --init --recursive"
echo "" echo ""
fi fi
elif [ "$DRY_RUN" = false ] && [ $REGISTERED -eq 0 ] && [ $SKIPPED -eq 0 ]; then elif [ "$DRY_RUN" = false ] && [ -n "$IGNORE_MODE" ]; then
if [ "$QUIET" != true ]; 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
fi fi
@@ -431,5 +563,3 @@ if [ "$QUIET" != true ]; then
fi fi
exit 0 exit 0