Данная статья описывает как применить систему контроля версий файлов к программированию 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