Если указаны исходный и целевой файлы, SubWCRev копирует исходный файл в целевой, выполняя подстановку ключевых слов следующим образом:
Таблица 6.3. Список доступных ключевых слов
Ключевое слово | Описание |
---|---|
$WCREV$ | Заменяется на наибольшую зафиксированную ревизию в рабочей копии. |
$WCREV&$ | Заменяется на наибольшую зафиксированную ревизию в рабочей копии, дополняется значением после символа &. Например: $WCREV&0xFFFF$ |
$WCREV-$, $WCREV+$ | Заменяется на наибольшую зафиксированную ревизию в рабочей копии, добавляя или отнимая значение после символа + или -. Например: $WCREV-1000$ |
$WCDATE$, $WCDATEUTC$ | Заменяется на дату и время фиксации наибольшей ревизии. По умолчанию используется международный формат: yyyy-mm-dd hh:mm:ss . В качестве альтернативы вы можете указать пользовательский формат, который будет использован в strftime() , например: $WCDATE=%a %b %d %I:%M:%S %p$ . Для получения списка возможных символов форматирования обратитесь к онлайн-справочнике. |
$WCNOW$, $WCNOWUTC$ | Заменяется на текущую системную дату/время. Может быть использовано для указания времени сборки. Может быть использован формат даты/времени, описанный для $WCDATE$ . |
$WCRANGE$ | Заменяется на диапазон ревизий обновления в рабочей копии. Если рабочая копия в согласованном состоянии, то это будет единственная ревизия. Если рабочая копия содержит смешанные ревизии, или устарела, или преднамеренно была обновлена до определенной ревизии, то диапазон будет показан в форме 100:200. |
$WCMIXED$ | $WCMIXED?TText:FText$ заменяется на TText , если есть смешанные обновления ревизий, или на FText , если нет. |
$WCMODS$ | $WCMODS?TText:FText$ заменяется на TText , если были локальные изменения, или на FText , если не было. |
$WCUNVER$ | $WCUNVER?TText:FText$ заменяется на TText если в рабочей копии есть неверсированные элементы, или FText если нет. |
$WCEXTALLFIXED$ | Если все внешние изменения заменены на явные. то $WCEXTALLFIXED?TText:FText$ заменяется на TText . Иначе он заменяется на FText . |
$WCISTAGGED$ | Если URL хранилища содержит шаблон классификации тегов. то $WCISTAGGED?TText:FText$ заменяется на TText . Иначе он заменяется на FText . |
$WCURL$ | Заменяется на URL хранилища той рабочей копии, путь к которой был передан SubWCRev. |
$WCINSVN$ | $WCINSVN?TText:FText$ заменяется на TText , если элемент версирован, или на FText , если нет. |
$WCNEEDSLOCK$ | $WCNEEDSLOCK?TText:FText$ заменяется на TText , если у элемента установлено свойство svn:needs-lock , или на FText , если нет. |
$WCISLOCKED$ | $WCISLOCKED?TText:FText$ заменяется на TText если элемент заблокирован, или на FText , если нет. |
$WCLOCKDATE$, $WCLOCKDATEUTC$ | Заменяется на дату блокировки. Может быть использован формат даты/времени, описанный для $WCDATE$ . |
$WCLOCKOWNER$ | Заменяется на имя владельца блокировки. |
$WCLOCKCOMMENT$ | Заменяется на комментарий блокировки. |
$WCUNVER$ | $WCUNVER?TText:FText$ заменяется на TText , если в рабочей копии присутствуют неверсионные файлы или каталоги, или на FText , если таких файлов нет. |
SubWCRev напрямую не поддерживает вложение выражений, поэтому вы не можете использовать, к примеру, выражение
#define SVN_REVISION "$WCMIXED?$WCRANGE$:$WCREV$$"
Но вы можете обойти это с помощью других средств. Например,
#define SVN_RANGE $WCRANGE$ #define SVN_REV $WCREV$ #define SVN_REVISION "$WCMIXED?SVN_RANGE:SVN_REV$"
Некоторые их этих ключевых слов применяются к отдельным файлам, а не ко всей рабочей копии, поэтому имеет смысл использовать их, когда SubWCRev вызывается для сканирования одного файла. Это относится к $WCINSVN$
, $WCNEEDSLOCK$
, $WCISLOCKED$
, $WCLOCKDATE$
, $WCLOCKOWNER$
и $WCLOCKCOMMENT$
.