2009-02-23 7 views
8

Sto lavorando a un progetto in cui stiamo attivamente utilizzando la stringa $Id$ generata da subversion per scrivere il numero di versione nella documentazione. Ad esempio, analizziamo questa stringa

$Id: filename 999 2009-02-23 22:51:29Z author $ 

e stampa "999" nella pagina del titolo della documentazione.

Ma di tanto in tanto, dopo un commit, l'informazione viene rimosso e siamo lasciati con un solo

$Id$ 

Questo rompe, ovviamente, le cose un po '. Qualcuno sa perché potrebbe accadere?


Ok, la risposta ovvia era corretta; svn:keywords non sono stati impostati per quel file più. Ma giuro che erano! Qualche idea su come/perché svn:keywords sarebbe stato cancellato da un file senza che nessuno abbia notato/facendo qualcosa di proposito?

risposta

10

La proprietà svn: keywords potrebbe non essere impostata correttamente su tale file. È necessario impostarlo su (almeno) 'Id':

svn ps svn:keywords 'Id' filename.txt 
+0

Grazie, avrei dovuto prima controllarlo; le parole chiave non sono state impostate per questo file come sospetti, ma giuro che lo erano! –

+0

Se si sta eseguendo il client SVN della riga di comando, è possibile impostare i valori predefiniti per questa roba nel proprio file ~/.subversion/config. Ciò vale anche per TortoiseSVN, ma non citarlo su questo. –

2

Le parole chiave sono espansi in cassa solo se la 'svn: keywords' proprietà è definita. Quando si utilizzano strumenti di esplorazione del repository come ViewSVN, non dovrebbero essere espansi, vale a dire. sono visualizzati come $ Id $.

+0

Quindi, se ho "perso" le parole chiave SVN (le parole chiave sono impostate ma non sono state espanse), c'è un modo per forzare un "checkout" che li espande? –

2

La risposta che hai selezionato è corretta. Potresti inoltre osservare l'impostazione dei tuoi dispositivi di puntamento automatici per abilitare automaticamente la proprietà della parola chiave. Vedere http://svnbook.red-bean.com/en/1.1/ch07s02.html#svn-ch-7-sect-2.4

Quando hai fatto che si potrebbe occasionalmente eseguire svn_apply_autoprops.py da http://subversion.tigris.org/tools_contrib.html

svn_apply_autoprops.py controllerà le impostazioni autoprops e passare attraverso il repository impostazione tutto.

0

OK, la risposta ovvia era corretta; svn: le parole chiave non sono state impostate per il file . Ma giuro che lo erano ! Qualche idea su/perché svn: le parole chiave sarebbero state cancellate da un file senza nessuno notando/facendo qualcosa su scopo?

La prima ragione mi viene in mente sarebbe: Se il file è stato svn-aggiunto e poi spostato/rinominato prima della prima impegnano le proprietà di auto non sono stati applicati.

Il bug che fa perdere un file alle sue proprietà in questo caso verrà risolto in Subversion 1.5.6 e 1.6.0.

6

Assicurarsi che il file sia in UTF-8 e NON in Unicode. Quelli Unicode non si espandono come SVN pensa che questi non siano file di testo ... Ho usato il Blocco note Salva come UTF-8 per risolvere il problema

+2

Ho passato 6 ore oggi a cercare di capire perché un file di testo esistente in SVN non poteva ottenere svn: l'espansione delle parole chiave funzionava. La codifica del file di testo era il problema. Mi hai salvato dall'impazzire! – tyriker

Problemi correlati