PDA

Просмотр полной версии : Узнать версию файлов в проекте


crawler
30.11.2005, 12:20
Существует большой (порядка 200 файлов) проект на С++. Теперь посчитали что проект достаточно разросся, чтобы контролировать версии. Внимание вопрос: как с минимальными усилиями сделать так, чтоб генерировалась версия КАЖДОГО source-файла, и в мэйне можно было легким движением руки получить полный репорт ?
Имеется в виду использовать предефайны типа __TIMESTAMP__ и __FILE__. Но как все это передать в мэйн не совсем ясно.

PSyton
01.12.2005, 06:34
По моему системы контроля версий позволяют получать отчет по текущей ветке довольно легко. А зачем что-то в main?

/7y3uK
02.12.2005, 14:26
есть такая штука, как системы ктонтроля версий (СКВ) - самые популярные - это CVS и Subversion (сабвершин говорят поудобнее) - принцип работы следующий - на серваке бежит серверсайд СКВ - там создается репозиторий в который комитятся проекты (файлы), далее вся работа происходить только через этот сервак - девелопер выкачивает последнюю версию проекта, вноси изменения и коммитит эти изменения в СКВ. Любая уважающая себя клиентсайд тулза для работы с репозиторием умеет показывать таблички с версиями, позволяет строить графы версий, а также, естественно, откатываться на более раннюю версию... ну это так - вкратце и несколько сумбурно - поищите в гугле, там инфы навалом

crawler
03.12.2005, 00:00
Я видать не совсем корректно об'яснил. Мы уже пользуемся Visual Source Safe (VSS) для контроля сорсов (и перехода на что-то другое не будет). Но у VSS (как и CVS ) есть один большой минус -отсутствие атомарных операций как в сабвершион или клиркейз. Таким образом если в момент компиляции ты собрал у себя не все последние сорсы, то возникает (и не однократно возникала) ситуация, когда прога функционирует некорректно - а почему непонятно. Так возникло желание иметь версии всех сорсов в .ехе файле, для того чтобы знать точно из чего был скомпилирован ехешник. Номера версий, понятное дело, будут синхронизированы с VSS. А то неделю прога бежит, потом падает - а в дебаггере никаких проблем уже нет - сорсы изменились.
То есть можно по тупому в каждом .срр файле сделать переменную с версией файла и передавать всю инфу через все модули. Но хотелось бы найти более элегантный способ, чтобы не надо было заходить в почти 200 файлов и вносить в каждый особенные для этого файла изменения. То есть я не против написать скриптик и пусть он гуляет по всем файлам и втыкает готовую подпрограмму, но вручную это делать очень не охото.

Как IDE пользуем Visual Studio 2003 .Net, но .net не пользуемся.