[英]How do you manage your Delphi Projects with third-party components in Version Control?
如果您有大型組件,安裝第三方組件總是需要很長時間,但如果您在多台計算機中設置環境,則需要更長時間。
而且我正在考慮將它們添加到版本控制(Subversion)中,因此使用它所需的所有組件檢查項目總是很容易的。
那么你如何管理它,以及在VCS中管理它們的最佳實踐是什么?
還要考慮其中一些第三方沒有來源但是作為Delphi庫。 (BPL)。
如果我們有源,那么我們將它包含在我們的存儲庫中的單獨文件夾下。
如果我們沒有源代碼,那么我們只保留存儲庫中最新的二進制文件(bpl,dll等),並在安裝文檔中包含安裝/使用說明。
它看起來像這樣:
\root
\third_party_stuff
\vendor1 --we *do* have the source for this
\src
\bin
\vendor2 --we *do* have the source for this
\src
\bin
\vendor3 --we don't have the source for this one
\bin
\our_stuff
\project1
\src
\bin
\project2
\src
\bin
使用Subversion,我使用外部功能。 它使得在多個項目中使用第三方內容變得容易; 當您簽出項目時,您也會獲得外部依賴項。
如果您還沒有,那么您應該獲得使用Subversion的實用版本控制的副本。 這是一本關於Subversion功能和如何做事的好書。 雖然它從命令行引用SVN,但信息也可以輕松轉換為TortoiseSVN中的GUI。
為了將組件重新安裝到Delphi中以用於舊項目,我通常會將用於Delphi的任何版本的注冊表項導出到項目的文件夾中,然后將.REG文件與項目一起檢查到Subversion中。 您可以輕松簽出項目,導出現有的Delphi注冊表部分以獲取相應版本的Delphi,從項目源文件夾導入.REG文件,然后啟動Delphi並安裝所有組件。
至於“二元BPL”問題,對你感到羞恥! 如果您的項目依賴於第三方工具,則應為其購買源代碼。 這樣你就可以防止該公司破產,或者放棄對不兼容的組件或新版Delphi的支持。 我總是得到第三方組件的來源; 如果源不可用,我會找到不同的產品或自己編寫代碼。 它被稱為自我保護。 :-)
首先,我同意Ken和Fabricio的說法,你必須擁有項目中使用的所有組件的源代碼。 別的什么只是在惹麻煩。
我們不使用Subversion作為源代碼控制,但我猜我們所做的仍然適用...
我們處理的每個項目都包含該項目中使用的所有組件(源)的完整副本。 當我們發布時,我們創建一個包含組件和項目源的發布分支。 每個項目都包含它自己的BPL目錄。
我們總是創建單獨的快捷方式來為我們想要處理的每個項目(或項目的分支)運行Delphi,並使用-R命令行參數為該項目的Delphi設置設置唯一的注冊表項。
然后我們確保在Delphi中覆蓋Path環境變量以指向我們的項目BPL目錄而不是普通的Delphi BPL目錄。
我們將所有組件的BPL和DCP輸出目錄設置為本地項目BPL目錄。
這使我們可以擁有多個版本的Delphi,多個版本的項目使用不同版本的組件而沒有任何問題。
我同意Ken White對此:生產代碼中使用的delphi第三方組件
必須有源代碼
期。 編譯的二進制文件,僅分布是僅用於評估目的。 這是我們的政策。
至於問題:我實際上並沒有將它們放在VCS上。 實際上我使用我的項目編譯和工作的最新版本。 系統,搜索,庫,等等路徑的混亂不值得。 2 JVCL在同一台機器上或通過任何新項目來回復制版本? ARRRRGH。
如果我必須將舊版本用於維護系統,請刪除新VM並安裝最新版本。 有用? 好。 不? 它保留在VM上,直到我發現一種集成在主環境中的方法。
每件事的一個版本綽綽有余。
值得一提的是,像LMD這樣的公司為支持訂閱的客戶提供了對自己的SVN存儲庫的遠程訪問。 我發現這是獲取關鍵問題的快速錯誤修正的好方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.