[問題] 專案原始碼管理的問題……
不好意思,標題不知道怎麼下,只好下的很大概。
想請教一個關於版本管理的問題。
目前公司的的版本管理用的是 rcs,我想建議公司換成 mercurial。
但是遇到一些技術困難,主要是編譯時間的問題,想請教一下如何解決。
目前的專案管理是這樣:
1. 全部的程式碼很大,大月兩百萬行,編譯一次需要數個小時
2. 程式碼被根據功能分成十幾個 package。
3. 每天都會有個 script co 所有檔案,進行編譯,
編譯完成的話,就會在 /newbuild/ 放一份通過編譯的版本,
這個版本不一定是最新的,因為這個版本一天更新一次,
如果該天的編譯沒有通過,那 /newbuild/ 裡面的就是前一天的版本。
/newbuild/ 裡面除了有原始碼,也有編譯好的 .o .lib 等檔案。
4. 程式員要進行開發之前,使用一個叫做 cloneAll 的 script,
這個 script 會從 /newbuild/ 建立一份拷貝在 local 端,
但是不是實體拷貝,而是對每個檔案建立一個 symblic link。
5. 程式員就在 local 工作,要改檔案之前先用 co -l 鎖定檔案,
改完之後用 ci check in。
這樣的優點是程式員在 local 工作的時候,不需要去編譯整個 project,
因為從 /newbuld/ cloneAll 的時候,連 .o .lib 也會建起 symblic link,
所以改了哪些就編哪些,不用先浪費幾個小時 build 出整個版本。
至於這樣的缺點…… T_T
每次改檔案都得一個一個 ci,
有的時候改了幾十個檔案,光是打那幾十個檔名慢慢 ci 我就想要噴淚,
另外每次要 patch 到某些 release 的時候,都得一個一個檔案慢慢 vimdff,
加上眼睛看漏、手滑按錯的,幾個小時就這樣過去了。
所以我才會想用 mercurial,
但是問題在於,如果 mercurial 只 add 了 source code,
那每次 hg clone 下來之後都得先編譯整個 project,那就是幾個小時,
但是把 .o .lib 也加進 repo 好像又怪怪的,
所以我現在有點困惑,一般面對這種大型的專案,是怎麼進行管理的?
mercurial 是不是不適合?
還是說其實公司本來這樣用 symbilic link 的方法是正確的?
感謝。
--
To iterate is human, to recurse, divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.116.177
推
05/30 22:55, , 1F
05/30 22:55, 1F
→
05/31 01:52, , 2F
05/31 01:52, 2F
→
05/31 16:33, , 3F
05/31 16:33, 3F
→
06/01 00:13, , 4F
06/01 00:13, 4F
→
06/01 03:03, , 5F
06/01 03:03, 5F
→
06/01 03:03, , 6F
06/01 03:03, 6F
→
06/01 08:19, , 7F
06/01 08:19, 7F
→
06/01 22:31, , 8F
06/01 22:31, 8F
→
06/01 23:19, , 9F
06/01 23:19, 9F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
CSSE 近期熱門文章
PTT數位生活區 即時熱門文章