簡體   English   中英

為多個項目設置Perforce軟件倉庫

[英]Setting up Perforce depot for multiple projects

簡介:需要幫助來弄清楚如何設置軟件倉庫和開發環境,以便我可以支持多個相關項目。

詳細信息:到目前為止,我有一個倉庫,其中只有一個項目-ProjectA-機器人版本A。

我開始使用新版本(ProjectB),該版本在硬件方面有一些差異-I / O端口映射和計時器已更改。 我想繼續為兩個項目開發代碼。

這意味着ProjectB將與ProjectA共享某些文件,而某些文件將有所不同。

由於差異是硬件相關項目,因此我想做的是創建一個公共區域,然后投影特定區域,其中公共區域用於設備獨立代碼,而項目特定區域用於設備依賴代碼。

差異足夠大,以至於我不想在文件中執行#ifdef。 有些區別很簡單-不同的I / O端口映射,有些則是全新的模塊。

為了使維護更容易,我希望能夠比較設備相關代碼之間的差異並傳播選定的更改。

最后,為了最大程度地減少比較時的負擔,我想標記一些我知道可以的差異,以免在以后的比較中它們不會出現。

救命!

您的直覺很不錯-您正在嘗試不重復代碼。 這是良好設計與工程的核心。

至於文件布局,目錄太深總是很煩人,但這總比太淺要好。 也許:

<root>
  main/
    projects/
       robot1/...
       robot2/...
       shared1/
       shared2/

(大型存儲庫比這還要深得多。)

至於如何創建共享代碼-您可以使用不同的setup.h或constants.h驅動各種共享庫的工作。 或者,構建共享庫,以便在運行時對其進行參數化。

SetupDrivers(0x80020); // address of PIO registers

最后,如果項目確實不同,則決定共享代碼是否確實正確。 通常是的,但是一切都是選擇。 如果您希望手動“差異化”文件以查找差異,那么實際上取決於您保持結構足夠接近差異即可。 上面提到的“每個項目的不同config.h文件”想法會有所幫助。

如果您滾動自己的差異工具(使用python或其他工具),則可以使用特殊注釋來標記“預期的不同行”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM