Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.09.19;
Скачать: [xml.tar.bz2];

Вниз

Как получить доступ к SVN-ревизии .DFM в run-time ?   Найти похожие ветки 

 
laao   (2010-06-21 17:12) [0]

Добрый день

Задача - иметь номер ревизии Subversion в run-time Delphi проекта (для отображения пользователю, записи логов и так далее). SVN проставляет ревизию в любом текстовом файле при его изменении, в том месте, где указана служебная метка $Rev $. В нашем случае интересны .PAS и .DFM. Получение номера ревизии для .PAS файла решается добавлением блока инициализации

Foo.UpdateRevision("$Rev: $");

В этом случае при любом измении .PAS файла и commit"е его в репозиторий SVN собранный после этого проект будет оперировать в run-time актуальной ревизией.

Есть ли у кого-то идеи, как добиться того же эффекта для .DFM ? Добавить константу с $Rev $ в каждый файл несложно, можно для всех форм зарегистрировать компонент-предок с property Revision: TCaption ... Но как его получать потом? На момент старта проекта ведь не все формы еще создаются ...

Приветствуются любые идеи


 
_Юрий ©   (2010-06-21 19:04) [1]

ТО есть может такое быть, что у pas ревизия другая, чем у соответствующего ему DFM ?
ИМХО, это неверно


 
Игорь Шевченко ©   (2010-06-21 22:27) [2]

_Юрий ©   (21.06.10 19:04) [1]


> ИМХО, это неверно


Вроде ничего неверного. pas может обновляться чаще, чем dfm

laao   (21.06.10 17:12)  


> Приветствуются любые идеи


> Но как его получать потом?


Например, из ресурсов, как собственно, загружается dfm при создании.


 
jack128_   (2010-06-21 22:40) [3]

а можно узнать - зачем вообще в dfm"ках нужен номер ревизии?


 
laao   (2010-06-22 12:14) [4]

Да, таки из ресурсов нужно вытаскивать .DFM в run-time. Сейчас эксперементирую в этом направлении


> jack128_   (21.06.10 22:40) [3]
> а можно узнать - зачем вообще в dfm"ках нужен номер ревизии?
>


Ну, например, открыл я готовый проект, удалил в дизайнере у какой-то кнопки обработчик на Click. Или, другой пример, для датасета изменил свойство SQL. В .PAS файле при этом ничего не поменяется :)


 
laao   (2010-06-22 12:24) [5]


> ТО есть может такое быть, что у pas ревизия другая, чем
> у соответствующего ему DFM ?ИМХО, это неверно


Subversion (SVN) проставляет новую ревизию только в тех файлах, которые менялись. Так как существует множество случаев, когда меняется либо только .PAS, либо только .DFM, то да, ревизии будут разными (а нас интересует максимальная из всех файлов проекта)


 
jack128_   (2010-06-22 19:35) [6]

так в рабочей копии же есть инфа о номере ревизии, нафиг она в самих сорцах?


 
[true]TRIx ©   (2010-06-24 00:48) [7]

Tortose SVM скачай. ставишь, затем в проводнике правой кнопкой мыши клацаешь на любую папку куда заливать и вбиваешь ссылку.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.09.19;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.004 c
2-1277316263
ribos
2010-06-23 22:04
2010.09.19
В консоли ошибок нет, переношу под VCL вылетает исключение


15-1277411394
Юрий
2010-06-25 00:29
2010.09.19
С днем рождения ! 25 июня 2010 пятница


2-1277704401
И. Павел
2010-06-28 09:53
2010.09.19
Общий обработчик ошибок, завершающий программу.


11-1216304360
neccasalmor
2008-07-17 18:19
2010.09.19
как в компоненте montcalendar выделить интервал дней?


15-1275517571
RGV
2010-06-03 02:26
2010.09.19
Простенький Video stream сервер





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский