記得當時年紀小話說在純純 ( 蠢蠢 ?) 的古早時代
優點:◦ 所有修改都在相同檔案了◦ 查得到歷史紀錄
註解很好用
大家一起 Coding 叫做協同作業 協同作業,同步程式碼
◦ 用網路芳鄰◦ 用 FTP ◦ 用 DropBox
好歐,充滿了現代智慧及新潮科技 ( 簡直高大上啊 )
到了公司,同事說
同事問:「嘿!我寫的程式被誰蓋掉了…」◦ ( 不是我不是我 )
檔案找不到了,明明有上傳啊!!
但到了第三週…
持續性 差異比對 多人協作 版本滾回 修改紀錄及訊息紀錄
版本控制系統特性
就是台伺服器 儲存檔案的新版本還有歷史資料的地方檔案庫
Source:CVS for Windows 簡易安裝指南蔡煥麟
從檔案庫◦ 放入程式碼 ( 要寫描述哦 )◦ 取出程式碼
簽入 / 簽出
Source:http://chimera.labs.oreilly.com/books/1234000001574/ch02.html
版號自動加一 ?
同步所有人的檔案,避免不同 版本變化的追蹤 開發者的備份 ?
簽入的重點在
簽入時,新版蓋舊版 但多人改一份時 ?
◦ 版控系統可以自動合併◦ 但總會發生它不懂的
手動查原因,並解決之◦ ( 記得是解決問題,不是解決同事 )
衝突 ?
版本編號是沒意義的◦ 3001 版 & 3289 版 & 5327 版
真正有用的◦ 有意義的標籤,如 Ver 1.0.1 、 1.5.3 、耶誕特別版 等
Tag
每個檔案的每項變動 隨時滾回舊版
◦ 2401 => 2387 從舊版跑到最新版
◦ 2387 => 2401
版本追蹤和比對
Source:https://www.oxygenxml.com/xml_editor/subversion_client.html
把檔案庫切成主幹、枝葉 主幹和枝葉可以分開修改 最後再合併
◦ (這裡極需要人力,記得不要解決同事哦 )
分支 & 合併
知名版本控制 免費軟體 ( 都有免費平台可以用 ):
– CVS– SVN– GIT
付費軟體 :– Microsoft VSTS
中央管理式由統一伺服器集中管理
◦ 檔案庫、訊息、 LOG◦ 使用者和存取權限◦分支在伺服器
重點在保持多人同步◦ 合併策略或加解鎖策略
把檔案庫下載到本機端◦ 每個單機都擁有檔案庫◦分支在本機端
重點不在同步而是個別版本◦ 對本機端簽入、滾回舊版、分支◦ 最後再考慮同步到中央庫
分散式
版控定義:◦ 持續性追蹤,並能比對差異
只能管理檔案嗎 ?◦企業內部還有很多事該做吧 ?◦ 寫程式、分析需求、會議、測試、部署、和客戶吵架
版控 = 程式碼管理 ?
老方法:◦打開 IDE ,取得新版檔案,編譯◦執行功能,點這點那…
如果加入版控…呢 ?
& 測試
老方法:◦承上,把編譯結果檔保存下來◦ 放到客戶端 / 伺服器◦ 如果三百台就拷貝三百次 ?
如果使用版控…呢 ?
& 部署
團隊人數 & 平台選擇◦分散式、中央管理式
團隊策略制訂◦ 加解鎖 / 分支合併◦ 描述寫法◦哪些要被版控 ?
檔案、文件、編譯結果、需求書、會議 (吵架 ) 紀錄
版控策略