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.

gcomp -d

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

cd Current
git init

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

git add *.mdp
git add *.1s
git add *.frm
git add *.mxl
git add *.ord
git add *.txt
git add *\*.mdp
git add *\*.1s
git add *\*.frm
git add *\*.mxl
git add *\*.ord
git add *\*.txt

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

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

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

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

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

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

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

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

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

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

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

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

if not exist = "1Cv7.MD" goto doNothing
del /S .\Current\*.mdp
del /S .\Current\*.1s
del /S .\Current\*.frm
del /S .\Current\*.mxl
del /S .\Current\*.ord
del /S .\Current\*.txt
gcomp -d
del /Q 1Cv7.MD
xcopy .\SRC .\Current /E /I /Y
rmdir .\SRC /S /Q
cd Current
addAllFiles.bat
:doNothing

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

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

gcomp.exe -c -D Current