Пример для ключевых слов

Нижеприведённый пример показывает, как происходит замена ключевых слов при переходе от шаблонного файла к целевому.

// Проверочный файл для SubWCRev

char *Revision      = "$WCREV$";
char *Revision16    = "$WCREV&0xFF$";
char *Revisionp100  = "$WCREV+100$";
char *Revisionm100  = "$WCREV-100$";
char *Modified      = "$WCMODS?Modified:Not modified$";
char *Unversioned   = "$WCUNVER?Unversioned items found:no unversioned items$";
char *Date          = "$WCDATE$";
char *CustDate      = "$WCDATE=%a, %d %B %Y$";
char *DateUTC       = "$WCDATEUTC$";
char *CustDateUTC   = "$WCDATEUTC=%a, %d %B %Y$";
char *TimeNow       = "$WCNOW$";
char *TimeNowUTC    = "$WCNOWUTC$";
char *RevRange      = "$WCRANGE$";
char *Mixed         = "$WCMIXED?Mixed revision WC:Not mixed$";
char *ExtAllFixed   = "$WCEXTALLFIXED?All externals fixed:Not all externals fixed$";
char *IsTagged      = "$WCISTAGGED?Tagged:Not tagged$";
char *URL           = "$WCURL$";
char *isInSVN       = "$WCINSVN?versioned:not versioned$";
char *needslck      = "$WCNEEDSLOCK?TRUE:FALSE$";
char *islocked      = "$WCISLOCKED?locked:not locked$";
char *lockdateutc   = "$WCLOCKDATEUTC$";
char *lockdate      = "$WCLOCKDATE$";
char *lockcustutc   = "$WCLOCKDATEUTC=%a, %d %B %Y$";
char *lockcust      = "$WCLOCKDATE=%a, %d %B %Y$";
char *lockown       = "$WCLOCKOWNER$";
char *lockcmt       = "$WCLOCKCOMMENT$";

#if $WCMODS?1:0$
#error Source is modified
#endif

// End of file

После запуска SubWCRev.exe путь\к\рабочей\копии testfile.tmpl testfile.txt, выходной файл testfile.txt будет выглядеть подобно этому:

// Тестовый файл для SubWCRev

char *Revision      = "22837";
char *Revision16    = "53";
char *Revisionp100  = "22937";
char *Revisionm100  = "22737";
char *Modified      = "Модифицированный";
char *Unversioned   = "нет неверсированных элементов";
char *Date          = "2012/04/26 18:47:57";
char *CustDate      = "Четверг, 26 Апрель 2012";
char *DateUTC       = "2012/04/26 16:47:57";
char *CustDateUTC   = "Четверг, 26 Апрель 2012";
char *TimeNow       = "2012/04/26 20:51:17";
char *TimeNowUTC    = "2012/04/26 18:51:17";
char *RevRange      = "22836:22837";
char *Mixed         = "Смешанная ревизия WC";
char *ExtAllFixed   = "Все внешние зафиксированы";
char *IsTagged      = "Не отмечен";
char *URL           = "https://svn.code.sf.net/p/tortoisesvn/code/trunk";
char *isInSVN       = "версирован";
char *needslck      = "FALSE";
char *islocked      = "не заблокирован";
char *lockdateutc   = "1970/01/01 00:00:00";
char *lockdate      = "1970/01/01 01:00:00";
char *lockcustutc   = "Четверг, 01 Январь 1970";
char *lockcust      = "Четверг, 01 Январь 1970";
char *lockown       = "";
char *lockcmt       = "";

#if 1
#error Источник модифицирован
#endif

// Конец файла

Подсказка

Файл вроде этого будет включён в сборку, поэтому ожидается, что он будет версированным. Убедитесь, что версирован шаблонный файл, а не генерируемый, иначе каждый раз при повторной генерации файла версий вам надо будет фиксировать изменения, что, в свою очередь, означает, что файл версии необходимо обновить.