imho.ws |
![]() |
![]() |
![]() |
# 1 |
Full Member
Регистрация: 11.12.2002
Сообщения: 864
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Узнать версию файлов в проекте
Существует большой (порядка 200 файлов) проект на С++. Теперь посчитали что проект достаточно разросся, чтобы контролировать версии. Внимание вопрос: как с минимальными усилиями сделать так, чтоб генерировалась версия КАЖДОГО source-файла, и в мэйне можно было легким движением руки получить полный репорт ?
Имеется в виду использовать предефайны типа __TIMESTAMP__ и __FILE__. Но как все это передать в мэйн не совсем ясно. |
![]() |
![]() |
# 3 |
Advanced Member
Регистрация: 09.03.2004
Адрес: толстозадая Москва
Сообщения: 498
![]() ![]() ![]() ![]() |
есть такая штука, как системы ктонтроля версий (СКВ) - самые популярные - это CVS и Subversion (сабвершин говорят поудобнее) - принцип работы следующий - на серваке бежит серверсайд СКВ - там создается репозиторий в который комитятся проекты (файлы), далее вся работа происходить только через этот сервак - девелопер выкачивает последнюю версию проекта, вноси изменения и коммитит эти изменения в СКВ. Любая уважающая себя клиентсайд тулза для работы с репозиторием умеет показывать таблички с версиями, позволяет строить графы версий, а также, естественно, откатываться на более раннюю версию... ну это так - вкратце и несколько сумбурно - поищите в гугле, там инфы навалом
__________________
В нашей стране настаивать на кореньях, черной смородине, лимонных корках - гораздо эффективнее, чем на правах |
![]() |
![]() |
# 4 |
Full Member
Регистрация: 11.12.2002
Сообщения: 864
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Я видать не совсем корректно об'яснил. Мы уже пользуемся Visual Source Safe (VSS) для контроля сорсов (и перехода на что-то другое не будет). Но у VSS (как и CVS ) есть один большой минус -отсутствие атомарных операций как в сабвершион или клиркейз. Таким образом если в момент компиляции ты собрал у себя не все последние сорсы, то возникает (и не однократно возникала) ситуация, когда прога функционирует некорректно - а почему непонятно. Так возникло желание иметь версии всех сорсов в .ехе файле, для того чтобы знать точно из чего был скомпилирован ехешник. Номера версий, понятное дело, будут синхронизированы с VSS. А то неделю прога бежит, потом падает - а в дебаггере никаких проблем уже нет - сорсы изменились.
То есть можно по тупому в каждом .срр файле сделать переменную с версией файла и передавать всю инфу через все модули. Но хотелось бы найти более элегантный способ, чтобы не надо было заходить в почти 200 файлов и вносить в каждый особенные для этого файла изменения. То есть я не против написать скриптик и пусть он гуляет по всем файлам и втыкает готовую подпрограмму, но вручную это делать очень не охото. Как IDE пользуем Visual Studio 2003 .Net, но .net не пользуемся. |
![]() |