看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《descent (「雄辯是銀,沉默是金」)》之銘言: : ※ 引述《jokingfish (ㄚ魚!!)》之銘言: : : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : : VC++ TortoiseSVN 1.7 既然你使用 VC++ & TortoiseSVN,剛好我略懂就來分享一下。 舉例,首先你可以在你的專案裡,加入一個 Header 和一個 Source, 這兩個檔案放在跟專案的位置同一個目錄。 ex. svn_version.h and svn_version.cpp (這檔案的內容如何不重要) svn_version.h 的 code 可以如下: #pragma once const char* svn_revision_number(void); 回傳一個常數字串,即是你要的 SVN 版號。 另外額外寫一個 template file,舉例叫 svn_version.tmpl 好了, 讓 TortoiseSVN 幫你覆寫並覆蓋內容至 svn_version.cpp。 svn_version.tmpl: #include "svn_version.h" const char* svn_revision_number(void) { return "$WCREV$"; } 接著便是取得當前專案 Working Copy 的版號。 專案設定中,有個 Pre-Build Event,加入下列指令: SubWCRev.exe .\ $(ProjectDir)\svn_version.tmpl $(ProjectDir)\svn_version.cpp DONE. 希望對你有幫助 :) : : 問題(Question): : : 因為多人寫CODE的版控問題,希望能夠"自動"的將SVN的版本號碼,讓EXE能讀到, : : 以便確定目前EXE檔的版本號碼.... : 不是很了解你這句話的意思。 : char version[]="$Revision$"; : 再經過 svn 後, 會換成版本編號, 不知道這是不是你要的功能。 : : (工作室內的版本比較沒問題,打開右鍵就可以看SVN版號,可是Release的時候, : : 常常有人漏更新版號 or 亂寫.....) : : 之前 TortoiseSVN 1.6之前,每個資料夾中都有個.svn資料夾 entries的檔案 : : 檔案內容如下 : : 10 dir 2461 http://192.168.1.117/SvnRoot/............... : : 可以從這邊抓到版本號碼"2461" EXE執行時就去抓到這組數字顯示出來 : : 可是1.7版以後,好像整個架構和這個檔案都改掉了..... : : 來源:http://0rz.tw/sCcsw : : 目前想到的解決方法 : : 1. 每次SVN進版就"手動更新",內嵌於EXE檔中的版本號碼 : : 2. 將SVN版本降回1.6(可是這樣可能會有其他問題....XD) : : 3. 其他方法(請大家賜教) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.242.127
jerohands:打完之後才發現有錯字.. 08/20 23:39
LPH66:文章前大寫 E 可以編輯喔 08/21 00:10
※ 編輯: jerohands 來自: 118.165.202.168 (08/21 11:36)
jokingfish:謝謝指導 已經取得了 謝謝^_^ 08/21 19:19