某些版本控制產品可以將感興趣的值嵌入到文件中,因爲它是從存儲庫中檢出的。通常你在源文件中放入一些魔術字符串,並在結帳時更新。就像你寫的「$ revision = xxx」一樣,如果你簽出修訂版832,它會變成「$ revision = 832」。 SVN是否有這樣的功能,可能使用屬性?SVN中的動態嵌入字段?
2
A
回答
4
你在keyword substitution之後,我想。
2
是的,REDBERD書的描述keyword substitution,是權威的,但這裏是快速破敗。
在foo.pl:
# Nifty perl trick to get just number and not "$Revision:" string.
our $revision = '1.0-' . qw$Revision: 0 $ [1];
然後運行:
svn propset 'svn:keywords' 'Revision' foo.pl
如果你的所有的Perl文件需要擴大$修訂$,看看自動道具。
設置您的〜/ .ssh/config文件:
enable-auto-props = true
*.pl = svn:eol-style=native;svn:executable;svn:keywords=Id LastChangedBy LastChangedRevision Revision Author
(在這裏,我也確信Perl腳本是可執行的,和EOL風格是正確的,因此用戶可以在Linux上結帳, Windows或Mac,沒有問題,除了修訂版,我還包括了我最常用的關鍵字。)
這甚至適用於像TortoiseSVN這樣的Windows客戶端(請參閱設置頁面中的按鈕,它將在編輯器中打開配置文件)。
自動道具最大的缺點 - 它們是每個用戶,所以所有提交者必須具有一致的設置。在未來的版本中有一些關於允許per-repo配置的討論。
〜J
啊,有時候會有一個簡單的答案。我搜索了文檔,但我無法想出正確的關鍵字(無雙關語)來搜索。 – Jay 2009-08-31 16:17:49