. : Использование CVS + 1C : .

    fade out v.1  . : Начало  . : 1С++  . : Download  . : ------  . : Форум  . : Гостевуха  
 . : Ссылки
 :WinCVS
 :Статья о WinCVS (rus)
 :Консольная утилита CVS
 :Документация по CVS (rus)
 :Распаковщик MD (Гэндальф)
 : -------
 . : : .

 . : как связаться :.:
 : . написать письмо
 : . ICQ 50391459

 . : : .


 . : Использование CVS + 1C

 Методики 

В процессе работы, особенно с конфигурациями, принятыми на сопровождение от других специалистов, я часто сталкивался с наличием "лишнего" кода. Это и неиспользуемые модули  и куски заремленного кода. Бывали ситуации, когда приходилось возвращаться к предыдущим версиям конфигурации.
Все это решалось хранением копий конфигураций. Довольно громоздко и неудобно при поиске измененных модулей.
Вторая проблема возникла, когда я пришел работать в фирму с количеством пользователей в 30-40 человек. Выгнать эту толпу, чтобы обновить конфигурацию - проблема из проблем. Обиднее всего, если необходимо поправить пропущенную запятую или кавычку - пустяк, а головняков много.
И третья проблема заключалась в том, что я мог в порыве энтузазизма, что-то поделать дома. Если исходные версии конфигурации были одинаковы, проблем нет, а если разные... Тогда ручками переносить изменения :-\

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

CVS, система конкурирующих версий, используется программистами уже давно и успешно и доказала свой статус удобного инструмента для групповой разработки программ. В различных системах разработки есть подобие CVS, теперь даже в 1С 8.0 встроили хранилище конфигураций.

Что же из себя представляет эта система и как работает.
у нас есть какой-то проект, в нашем случае, это конфигурация 1С. Есть выгруженные программные модули. Первое что мы делаем, это создаем хранилище и добавляем наши модули, как исходную версию.
Далее вносим изменения в своей копии, и после отладки и тестирования отправляем измененные модули в хранилище, снабдив их комментариями о проделанной работе.
CVS запоминает только отличия полученной версии от исходной, что экономит место на диске.
После чего на рабочей базе мы выполняем извлечение последних версий модулей. Все.
Почему необходимо выгружать тексты модулей.
CVS не умеет нормально работать с бинарными объектами. Они просто сохраняются целиком и никакие операции с ними не производятся.
Надеюсь, что вкратце принцип работы системы понятен.

Теперь немного о том, как CVS отслеживает момент изменения файла. Просто до безобразия. CVS запоминает момент последнего изменения файла, и если текущий момент не соответствует последнему - файл изменен.

И еще немного вкусностей.
Представьте ситуацию, что работает два программиста: Вася и Петя.
Оба они лезут в хранилище и берут оттуда файл "ДокументПКО_МодульПроведения.txt" версии 1.1.2.1, и усердно начинают что-то  ваять.
Вася закончи первый и вернул файл в хранилище. Версия файла стала 1.1.2.2.
Тут Петя тоже закончил ваять и положил файл в хранилище.
Версия файла стала 1.1.2.3, затерев Васины старанья. Логично? Нет!
CVS знает, что исходная версия файла, который Петя возвращает в хранилище, такая же как и Васина. Поэтому он совмещает оба файла, сохраняя в финальном файле изменения, внесенные обоими программистами.
Хорошо. А что будет, если и Вася и Петя правили не только один и тот же модуль, но и одну и ту же процедуру и более того, одну и ту же строку? CVS не может самостоятельно принять решение о разруливании такого конфликта, поэтому он сообщит Пете о том, что так и так, такой косяк, разберись, братан, самостоятельно, что вы там оба сразу наваяли.

Рассмотри такую ситуацию. Вы пишете отчет или документ. И вот на каком-то этапе у вас вырисовывается два варианта как можно решить поставленную задачу. Какой будет эффективнее - вопрос, надо попробовать. CVS дает вам возможность завести несколько веток версий файла! Без проблем. Удобно?

CVS позволяет забирать обновления из удаленного хранилища, что позволяет организовать автоматическое обновление конфигурации на стороне клиента - написать скрипт, который будет вытягивать обновленные файлы, если версия md-файла не изменена, и запускать его либо планировщиком, либо при помощи электронного письма. 
Кстати, чтобы не было проблем, можно настроить права доступа к хранилищу.

На этом я пожалуй закончу. Если у вас есть вопросы, задавайте по мылу или стучитесь в аську. Ссылки на материалы и программы приведены в колонке "Ссылки".

 : . GuinPin

Hosted by uCoz