1С 7.7 и Git

Опубликовано Опубликовано в рубрике 1C Программирование, Разное

006

Данная статья описывает как применить систему контроля версий файлов к программированию 1С 7.7 О то, что такое Git и как с ним работать написано в онлайн документации, доступной по адресу http://git-scm.com/book/ru.

Установочный файл Git для Windows http://msysgit.github.io/

Для удобной работы с Git в среде Windows можно использовать надстройку TortoiseGit. https://code.google.com/p/tortoisegit/

Добавим путь к Git в переменную Path.

Сам файл конфигурации является запакованным, его можно декомпилировать в набор текстовых файлов с помощтю утилиты GComp http://1c.alterplast.ru/gcomp/

Нужная версия для работы с Git – 2.2.16 http://www.1cpp.ru/forumfiles/Attachments/gcomp_bin_2_2_16.zip.

Создание репозитария

Скопируем файл 1Cv7.md в папку с GComp.

Распакуем конфигурацию в папку SRC.

Переименуем папку в Current и создадим там репозиторий Git.

Теперь надо добавить все файлы, которые относятся к конфигурации, в репозиторий (из текущей и вложенных папок)

Поскольку такие действия надо будет делать при каждом обновлении конфигурации, то лучше эти команды поместить в bat файл addAllFiles.bat в папке Current

После этого делаем Commit. Так у нас появляется история.

Удаляем исходный MDшник.

Далее каждый программист ведет разработку самостоятельно в 1С. Как только изменения готовы к слиянию – обновляем свой локальный репозиторий, а затем делаем Push в общий.

Обновление репозитария

Когда изменения готовы – копируем измененный MDшник в папку с GComp.

Декомпилируем.

Удаляем все файлы из папки Current, которые имеют отношение к конфигурации. Чтобы решить проблему с удалением.

Копируем все файлы из папки SRC в папку Current.

Добавляем все файлы из предыдущего пункта.

Делаем commit. Файлы диалогов *.frm, которые мы не трогали, не меняем (делаем revert в TortoiseGit, чтобы вернуть состояние файлов рабочей копии к состоянию последнего коммита). Это решает проблему с диалогами.

В виде bat’ника это будет выглядеть так:

После этого можно делать push в удаленный общий репозиторий.

Сборка конфигурации