2016-06-23

Системы контроля версий в проектировании

       Один из признаков того, что с проектом что-то пошло не так - названия папок и файлов и общая структура. Как только в название прибавляется "последний" "последний(2)", и всё это переносится в "Новая папка (2)" - всё, лавочку можно закрывать. Уже через месяц восстановить логику размещения будет сложно.




Найти последнюю версию в таких условиях - невозможно.
Как один из вариантов - использовать систему контроля версий
Они, конечно, больше подходят для программистов - встроенные инструменты сравнения позволяют отследить изменения, в нашем случае (Автокад+Архикад) файлы системой контроля не читаемы и обрабатываются как бинарные файлы.
На данный момент есть несколько распространённых систем:
Каждая система представляет собой консольную программу, но существуют интерфейсы для удобства и наглядности. Мы в работе применяем Mercurial c интерфейсом TortoiseHg.



Такой подход позволяет откатить проект назад к любому изменению и создать вторую версию проекта. Например, в процессе стройки вернуться к стадии П после технической экспертизы и откорректировать чертежи по замечаниям от сметной экспертизы. При этом количество папок не растёт - все изменения хранятся "под полом" - в папке .hg

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


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

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


Более подробно, по шагам, схема описана тут.