Количество билдов...
От: RmzVoid Россия  
Дата: 07.05.02 05:44
Оценка:
Каким образом можно подсчитывать количество компиляций и билдов, чтобы например засунуть это число в About?
(Microsoft Visual C++ 6.0)
Re: Количество билдов...
От: Constructor  
Дата: 07.05.02 05:52
Оценка:
Здравствуйте RmzVoid, Вы писали:

RV>Каким образом можно подсчитывать количество компиляций и билдов, чтобы например засунуть это число в About?

RV>(Microsoft Visual C++ 6.0)

Эту тему уже обсуждали в форуме по MFC. Поищи "версия приложения".
Re: Количество билдов...
От: Павел Кузнецов  
Дата: 07.05.02 05:53
Оценка:
Здравствуйте RmzVoid, Вы писали:

RV>Каким образом можно подсчитывать количество компиляций и билдов, чтобы например засунуть это число в About?


Google нам поможет (например, искать "increment build visual c++").
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re: Количество билдов...
От: Unauthorized  
Дата: 07.05.02 05:56
Оценка:
Здравствуйте RmzVoid, Вы писали:

RV>Каким образом можно подсчитывать количество компиляций и билдов, чтобы например засунуть это число в About?

RV>(Microsoft Visual C++ 6.0)

Можно написать макрос например:

Private Sub Application_BeforeBuildStart()
On Error Resume Next
Application.Documents.Open "Count.txt"
Dim vActDoc
Set vActDoc = Application.ActiveDocument
Dim vSelection
Set vSelection = vActDoc.Selection
vSelection.StartOfLine
vSelection.EndOfLine dsExtend
nCount = CInt( vSelection.Text ) + 1
vSelection = "" & nCount
vActDoc.Close dsSaveChangesYes
End Sub

Написано без проверки, потому возможны ошибки, прошу не пинать
Re: Количество билдов...
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 07.05.02 07:37
Оценка:
Здравствуйте RmzVoid, Вы писали:

RV>Каким образом можно подсчитывать количество компиляций и билдов, чтобы например засунуть это число в About?


http://www.rsdn.ru/forum/message.asp?mid=18007
Автор: Odi$$ey
Дата: 20.12.01
Re[2]: Количество билдов...
От: KA it-knowledge-base.blogspot.com
Дата: 07.05.02 13:02
Оценка:
Здравствуйте Odi$$ey, Вы писали:

O$>Здравствуйте RmzVoid, Вы писали:

RV>>Каким образом можно подсчитывать количество компиляций и билдов, чтобы например засунуть это число в About?


O$>http://www.rsdn.ru/forum/message.asp?mid=18007
Автор: Odi$$ey
Дата: 20.12.01


Идея, там изложенная, страдает одним существенным неодостатком: ВСЕГДА, когда будет нажиматься F7 (Build) или F5 (Run), будет осуществляться сборка приложения, даже если исходные тексты не изменялись. Что сводит значимость номера сборки на нет
Правильнее было бы увеличивать номер сборки после ее окончания, только если бинарник действительно изменился. Такой подход реализован в Visual Build (и в BuildNumberIncreaser, наверное, тоже), но чем-то мне эта прога в свое время не понравилась, поэтому я сварганил собственную
Перед компоновкой (Pre-link step) запускается спец. программа, которая увеличивает номер сборки в rc-файле, и перекомпилирует его. Это, конечно, не совсем исключает указанный недостаток
//
#import <windows.bas>
class IWindows9x:protected DOS { private: virtual HANDLE EnumClouds()=0; };
Re[3]: Количество билдов...
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 07.05.02 14:23
Оценка:
KA>Идея, там изложенная, страдает одним существенным неодостатком: ВСЕГДА, когда будет нажиматься F7 (Build) или F5 (Run), будет осуществляться сборка приложения, даже если исходные тексты не изменялись. Что сводит значимость номера сборки на нет
KA>Правильнее было бы увеличивать номер сборки после ее окончания, только если бинарник действительно изменился. Такой подход реализован в Visual Build (и в BuildNumberIncreaser, наверное, тоже), но чем-то мне эта прога в свое время не понравилась, поэтому я сварганил собственную
KA>Перед компоновкой (Pre-link step) запускается спец. программа, которая увеличивает номер сборки в rc-файле, и перекомпилирует его. Это, конечно, не совсем исключает указанный недостаток

А у нас инкремент (перегенерация h-файла с #defin'ами) производиться при коммите изменений в CVS и ни каких лишних инкрементов нет

Если интересно — могу поподробнее.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[4]: Количество билдов...
От: KA it-knowledge-base.blogspot.com
Дата: 07.05.02 14:34
Оценка:
Здравствуйте Коваленко Дмитрий, Вы писали:

КД>А у нас инкремент (перегенерация h-файла с #defin'ами) производиться при коммите изменений в CVS и ни каких лишних инкрементов нет


$Revision$? Угадал?
И этот Файл приходится постоянно отправлять в repository, даже если он не изменялся?

КД>Если интересно — могу поподробнее.


Давай!
//
#import <windows.bas>
class IWindows9x:protected DOS { private: virtual HANDLE EnumClouds()=0; };
Re[5]: Количество билдов...
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 07.05.02 15:00
Оценка:
Здравствуйте KA, Вы писали:

KA>Здравствуйте Коваленко Дмитрий, Вы писали:


КД>>А у нас инкремент (перегенерация h-файла с #defin'ами) производиться при коммите изменений в CVS и ни каких лишних инкрементов нет


KA>$Revision$? Угадал?

не CVSROOT/loginfo

KA>И этот Файл приходится постоянно отправлять в repository, даже если он не изменялся?

точно
сначало вытаскиваем из того-же CVS, изменяем, потом коммитим обратно.

КД>>Если интересно — могу поподробнее.

KA>Давай!

в loginfo добавляется запись вида
ActiveX/IBProvider v:/CVSROOT/AutoInc/ax_ibprovider.bat

где сначало указывается каталог при изменении содержимого которого будет увеличиваться номер версии. котороче каталог проекта.

потом указывается программа которая будет срабатывать на это действие. котороче объяснил

ax_ibprovider.bat содержит три команды
cvs get -l Version/ax_ibp_ver_info.dat Version/ax_ibp_ver_info.h
v:\CVSROOT\AutoInc\_auto_inc_build_no.exe Version\ax_ibp_ver_info.dat Version\ax_ibp_ver_info.h
cvs commit -m"inc_build_no" Version/ax_ibp_ver_info.dat Version/ax_ibp_ver_info.h

не примите за рекламу — просто единственный проект использующий все возможности инкременталки

_auto_inc_build_no — мое произведение, которое получает файл с параметрами описания версий и генерирует второй файл.

в архиве есть все три файла. типа прибайлдей с формата dat-файла. мой родной XML-парсер
На всякий пожарный — проверь на вирусы.

вот.
основные неудобства, которые я уже не замечаю

  1. В CVS должен быть отдельный каталог для всех файлов с версиями. если bat файл будет дергать тот же самый проектный каталог — то произойдет блокировка.
  2. после вытаскивания проекта из CVS нужно отдельно вытащить файлы с версиями. Обычно для этих целей в каталог проекта ложиться файл cvs_get_version.bat
  3. Если меняется файлы подкталога проекта, то инкремент версии будет делаться именно в этом подкаталоге. Я пока не придумал нормального способа как это делать в одном месте. Поэтому после commit'a приходиться чистить подкаталоги (cvs release Version -d, кажется). С WinCVS это не сложно.
  4. Иногда проходят непонятные сбои — когда инкрементруется версия другого проекта . Но это проблемы CVS а не мои. Он как-то (кажется начинает сравнивать с хвоста) странно определяет нужную запись в loginfo и иногда кидается на проект со схожим названием каталога.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[6]: Количество билдов...
От: KA it-knowledge-base.blogspot.com
Дата: 08.05.02 13:19
Оценка:
Здравствуйте Коваленко Дмитрий, Вы писали:

КД>в loginfo добавляется запись вида

КД>ActiveX/IBProvider v:/CVSROOT/AutoInc/ax_ibprovider.bat

[skipped]

КД>основные неудобства, которые я уже не замечаю


[skipped]

Держи еще пару неудобств:
5. Работает ТОЛЬКО на Win32 с доступом по сетевому ресурсу (local).
6. Если файлы проект отправляются в repository не одной командой commit, а несколькими, то номер сборки получается другой.
//
#import <windows.bas>
class IWindows9x:protected DOS { private: virtual HANDLE EnumClouds()=0; };
Re[7]: Количество билдов...
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 08.05.02 13:38
Оценка:
KA> 6. Если файлы проект отправляются в repository не одной командой commit, а несколькими, то номер сборки получается другой.

Главное, что номер увеличивается. В ручную я выставляю только первые три цифры, которые и указываются как версия продукта. Четвертая у меня всегда [автоматически] растет только в верхную сторону — и позволяет отслеживать внутренние релизы.

Тут главное определиться — что из себя представляет номер версии и зачем он нужен. А там через единицу он растет или нет — это не важно.

Мне кажется, что на покупателей нашей игрушки действует именно четвертая цифра. У конкурентов она с выходом новых версий сбрасывается в 0 (?), что не отображает реальное количество изменений по сравнению с предыдущей версией. Что-то стоящее с одной попытки сделать не реально. У нас это видно
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.