嗯...有些同事不太瞭解VCS的操作,所以我大概寫點概念,有經驗的人請儘量上來討論,最近我會專注在團隊開發與敏捷流程。
VCS最早是在Unix上有RCS,後來演變成為CVS,因此大多數的術語都以此為主,其他廠商推出的VCS雖然術語有所不同,但觀念和操作步驟大同小異。
1. VCS的資料儲存在Repository,必須先在Repository產生一個Module或叫Project。
2. 若是團隊開發,通常SA/SD會先做好module/project,你要做的是checkout module/project。
3. 自己新增的程式/文件要add進module,真正上傳的動作叫Commit(TFS叫Check in)。
2. 如果有現成的Code,可以Import Module,在CVS import module時會產生新的module。TFS必須先產生project,add後再check in。
5. 把別人更新的部份抓下來叫Update,若是真正在公司開發,建議每天下班一定要commit,而上班時先update。
6. 遇到兩個人都修改同個程式時,稱為conflict,此時最好手動處理,通常VCS自動處理都是merge,有些時候不注意就造成bug。
7. 若覺得穩定性夠時,就可以tag成release 1.0、beta1等等名稱,在checkout時會比較方便。
8. 有時候要做大規模的修改或是準備下一個發行版本時,就可以產生branch。分支是一個非常有用的東西,例如說Apache 1.x版可以繼續在同一個VCS儲存,但同時另一組人也在開發Apache 2.x。當branch要整合回主幹時,就使用merge,當然也可以反過來。
VCS是Team Development的基礎,這一關都過不了其他的就不用提。除VCS外,還有Unit Test、Integrate Test、Code Convention等,有空我再寫一點介紹。
VCS最早是在Unix上有RCS,後來演變成為CVS,因此大多數的術語都以此為主,其他廠商推出的VCS雖然術語有所不同,但觀念和操作步驟大同小異。
1. VCS的資料儲存在Repository,必須先在Repository產生一個Module或叫Project。
2. 若是團隊開發,通常SA/SD會先做好module/project,你要做的是checkout module/project。
3. 自己新增的程式/文件要add進module,真正上傳的動作叫Commit(TFS叫Check in)。
2. 如果有現成的Code,可以Import Module,在CVS import module時會產生新的module。TFS必須先產生project,add後再check in。
5. 把別人更新的部份抓下來叫Update,若是真正在公司開發,建議每天下班一定要commit,而上班時先update。
6. 遇到兩個人都修改同個程式時,稱為conflict,此時最好手動處理,通常VCS自動處理都是merge,有些時候不注意就造成bug。
7. 若覺得穩定性夠時,就可以tag成release 1.0、beta1等等名稱,在checkout時會比較方便。
8. 有時候要做大規模的修改或是準備下一個發行版本時,就可以產生branch。分支是一個非常有用的東西,例如說Apache 1.x版可以繼續在同一個VCS儲存,但同時另一組人也在開發Apache 2.x。當branch要整合回主幹時,就使用merge,當然也可以反過來。
VCS是Team Development的基礎,這一關都過不了其他的就不用提。除VCS外,還有Unit Test、Integrate Test、Code Convention等,有空我再寫一點介紹。
留言