# Вопросы по GitSync

## Что нужно сделать с gitsync, что бы изменения привязывались к нужному пользователю?

Это настраивается в файле AUTHORS - в него должны быть добавлены строки для каждого пользователя хранилища в формате:

```
ИмяПользователяВХранилище=Имя Пользователя <Моя@Почта.ру>
```

Важно не забыть закоммитить файл AUTHORS в репо после его заполнения.


## У меня в гитсинке по умолчанию ни одного плагина не установлено. Как правильно установить плагин?

Выполните `gitsync plugins init`.


## Гитсинк работает только с аппаратными лицензиями? Можно ли использовать программные серверные?

Сам gitsync не требует лицензии, лицензию требует 1С:Предприятие при работе с временной служебной файловой базой, которую он автоматически создает.

Самое простое решение - обеспечить наличие лицензии для файловой базы. Также проверьте, что в свойствах базы у вас отключено получение хардварной лицензии и что ей (базе) доступно получение программных лицензий (они должны быть установлены на том компьютере, где запускаете базу).

Если все-таки у вас нет возможностей использовать файловые базы на том же компьютере, где разворачиваете гитсинк, то можно использовать лицензии с сервера, для этого нужно создать новую серверную базу для работы gitsync вместо файловой.

Для использования серверной базы необходимо использовать опцию `-C` (`--ibconnection`, `--ib-connection`) или путь подключения к информационной базе (`env $GITSYNC_IB_CONNECTION`, `$GITSYNC_IBCONNECTION`) при выполнении команды `gitsync sync`.

См. также комментарии в статье https://infostart.ru/1c/articles/1157400/

## Нужно ли выполнять команду init в моём репозитории, чтобы создались файлы autors+version? Я так понимаю, что да, иначе sync работать корректно не будет. Команду gitsync init выполнять на уровне C:\Devopsrepo_dz2_2, а не C:\Devopsrepo_dz2_2\src\cf?

Команда init упрощает первоначальную подготовку gitsync к работе, создает файлы  VERSION и AUTHORS. Причем файл AUTHORS заполняется пользователями хранилища, который нужно проверить и скорректировать в случае необходимости (поправить почту например). Эти файлы можно создать вручную, но это будет не так быстро и удобно.

Команду нужно выполнять на уровне корня репозитория, т.е. в данном случае C:\Devopsrepo_dz2_2 и в параметре WORKDIR указать каталог, который будет хранить исходники (src\cf).

В видео рассматривается пример с установкой плагина limit.

Для данного этапа обучения плагины можно не ставить, но нужно знать как с ними работать. Также есть отдельное видео по использованию плагина замены автора.

## Файловое хранилище 1С периодически разрушается и его приходится разворачивать заново. Для корректного восстановления синхронизации между репозиторием и новым хранилищем достаточно ли будет сбросить номер версии в файле «..\src\cf\VERSION»?

Да, достаточно сбросить номер версии.

Нужно помнить, что нужно обеспечить соответствие авторов. Или заново перенастроить файл авторов.

Но лучше, конечно, разобраться, почему именно ломается файловое хранилище 1С?

Помните - работа с сетевым хранилищем или файловым, без сервера хранилища, опасна. На ОС Windows есть проблема с назначением прав при коммитах от разных пользователей. При использовании сервера хранилища 1С такой проблемы нет.


## Я правильно понимаю, что сценарий выгрузки изменений из хранилища 1C в GIT используется только в исключительных случаях? Например, нужно быстро исправить ошибку на рабочей базе. Вносим изменения в конфигурацию, помещаем в хранилище. Чтобы изменение не потерялось, синхронизируем GIT с хранилищем. В штатном режиме работы такой сценарий не используем.

Нет. Основные сценарии использования:

1. переход на использование GIT из хранилища (одноразовая выгрузка)
2. разработка ведется в Хранилище, код-ревью - в GitLabe; например, когда конфигурации тяжелые. Мы в Инфостарте так работаем с Комплексной конфигурацией.


## Как настроить gitsync для синхронизации хранилища конфигурации и расширения?"

Для работы gitsync с расширениями используйте опцию --ext. Попробуйте повторить действия как для хранилища, только добавляя эту опцию. Для размещения исходного кода расширения используйте каталог src\cfe\МоёРасширение  Тем не менее мы рекомендуем работать с исходниками расширений без хранилища, а выгружая их в исходники и сразу версионируя в гите.


## Как организовать синхронизацию с git когда база серверная? Уходит много времени на создание временной файловой базы при запуске синхронизации. Как можно оптимизировать время синхронизации?

Гитсинк умеет работать не только с файловыми, но и с клиент-серверными базами. Посмотрите помощь gitsync help.


## Gitsync умеет по tcp к хранилищу подключаться? строка подключения копируется из настроек подключения к хранилищу в конфигураторе?

Да.


## Какая оптимальная конфигурация gitsync для переноса очень большого хранилища 1С (с длинной историей в несколько лет) для максимального ускорения процесса

Есть 2 методики перевода хранилища в гит
- 1 самая простая и гарантированно работающая
  - настроить гитсинк, запустить выгрузку
  - проверить первые коммиты на правильность
  - оставить запущенным
  - периодически подключаться
  - и ждать\ждать\ждать )
- 2 более сложная - использовать параллельную выгрузку в гит в разные репо\ветки, а потом собрать в одни
  - технически непросто
  - если что-то пойдет не так, потеряете время и вернетесь к варианту 1

Я советую вариант 1 и сам им пользоваться не раз.

Настройки гитсинка для длительной выгрузки
- сделать копию хранилища в файлы на той машине, где будет запускаться гитсинк
  - максимально быстро
- ССД для этого диска
- 1ску лучше файловую использовать, также с ССД
- настроить ограничение по обрабатываемым коммитам - 1, 5, 10 и т.п.
  - чтобы коммиты пушились часто, а не оставались на машине с гитсинком
- настроить правильно файл авторов, чтобы не было несопоставленных авторов
- остальное мелочи"
