O exemplo abaixo mostra como palavras-chave num ficheiro template são substituídas no ficheiro de saída.
// Test file for 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
Depois de correr o SubWCRev.exe path\to\workingcopy testfile.tmpl testfile.txt
, o ficheiro de saída testfile.txt
irá ficar assim:
// Test file for SubWCRev char *Revision = "22837"; char *Revision16 = "53"; char *Revisionp100 = "22937"; char *Revisionm100 = "22737"; char *Modified = "Modified"; char *Unversioned = "no unversioned items"; char *Date = "2012/04/26 18:47:57"; char *CustDate = "Thu, 26 April 2012"; char *DateUTC = "2012/04/26 16:47:57"; char *CustDateUTC = "Thu, 26 April 2012"; char *TimeNow = "2012/04/26 20:51:17"; char *TimeNowUTC = "2012/04/26 18:51:17"; char *RevRange = "22836:22837"; char *Mixed = "Mixed revision WC"; char *ExtAllFixed = "All externals fixed"; char *IsTagged = "Not tagged"; char *URL = "https://svn.code.sf.net/p/tortoisesvn/code/trunk"; char *isInSVN = "versioned"; char *needslck = "FALSE"; char *islocked = "not locked"; char *lockdateutc = "1970/01/01 00:00:00"; char *lockdate = "1970/01/01 01:00:00"; char *lockcustutc = "Thu, 01 January 1970"; char *lockcust = "Thu, 01 January 1970"; char *lockown = ""; char *lockcmt = ""; #if 1 #error Source is modified #endif // End of file
Um ficheiro como este será incluído na construção, pelo que tu esperas que ele esteja sob controlo de versões. Tem a certeza de versionares o ficheiro template e não o gerado, de outra maneira de cada vez que regenerares o ficheiro de versão, terás de submeter a alteração o que por sua vez significa que o ficheiro de versão necessita então de ser actualizado.