080329 dvcs-vs
DESCRIPTION
TRANSCRIPT
![Page 1: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/1.jpg)
分布式源代碼管理工具簡介
集市、水銀及其它
![Page 2: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/2.jpg)
版本變更與管理
人是會犯錯誤的代碼是需要不斷修改和維護的
新版本新分支分支合并裏程碑補丁
人是會犯錯誤的代碼的變更需要跟蹤管理
人是會犯錯誤的我們需要代碼管理工具的幫助
![Page 3: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/3.jpg)
代碼管理與團隊合作
多人合作加劇了代碼管理的難度多人修改同一工程多人修改同一代碼文件
測試驅動開發的需要樁模塊驅動模塊
團隊工作需要技術手段的支持辦公室异地開發社區式開發
![Page 4: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/4.jpg)
管理理念與工具選擇──集中式管理 VSS
簽出即鎖鎖決定一切尊重公權交接,強調項目安全
CVS廣泛的選擇可能久經考驗復雜的配置管理
SVN更好的CVS事務管理與控制靈活多樣的配置與Apache的良好集成rename支持
![Page 5: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/5.jpg)
管理理念與工具選擇──從集中走向分布
VSS──鎖定與商議CVS/SVN──提倡沖突/解決思想,提倡交流與合作DCVS──
分階段管理,分布式管理為每個人提供自己的版本管理空間提供靈活的版本變更利于松散合作靈活方便的分支合并,為無限可能的合作提供可能健壯、靈活,強大的抗災變能力
![Page 6: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/6.jpg)
Bazaar VS Mercurial(個人體驗,僅供參考)
Bazaar精巧完備的功能方便而豐富的命令行操作簡單高效的合作理念直觀強大的版本提取與合并功能
Mercurial經受住超級項目的考驗
MozillaOpenJDK
簡單直接的工作方式健壯、堅固,流暢無阻的跨越各平台NetBeans內置支持
![Page 7: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/7.jpg)
安裝
Bazaar:安裝Python+Bazaar包編譯源碼安裝TortoiseBzrinstall apt-get install bzr
注意事項bzr.bat不在path中小烏龜安裝困難
Mercurial(Hg,水銀=汞)安裝二進制包編譯源碼安裝TortoiseHg
注意事項還沒有最新版安裝包(0.9.5版已相當成熟)Windows版編譯比較復雜
![Page 8: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/8.jpg)
第一步──建倉
bzr initbzr init-repo
hg init
![Page 9: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/9.jpg)
個人日常工作
將文件加入倉庫bzr add ...使用 bzr ignore ... 記錄要略過的部分
查看變更bzr diff
寫入倉庫bzr commit -m "..."
取消修改bzr updatebzr revert
將文件加入倉庫hg add ...使用 -X 匹配要略過的部分
查看變更hg diff
寫入倉庫hg commit -m "..."
取消修改hg update -Chg rollbackhg revert
![Page 10: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/10.jpg)
文件管理
刪除bzr rm
復制bzr cp
移動/改名bzr mv/rename
查看文件bzr ls
查看狀態bzr status
查看歷史bzr log
刪除hg rm
復制hg cp
移動/改名hg mv/rename
查看歷史hg loghg viewer
強大的正則搜索hg grep
查看狀態hg status
![Page 11: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/11.jpg)
與團隊共享
分支bzr branch to_path
獲取其它倉庫的變更bzr pull from_path
向其它倉庫發布變更bzr push to_path
發布單個補丁bzr send -o to.patch
接受補丁bzr merge from.patch
克隆hg clone to_path
獲取其它倉庫的變更hg pull from_path
向其它倉庫發布變更hg push to_path
發布單個補丁hg send -o to.patch
接受補丁hg merge from.patch
![Page 12: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/12.jpg)
每一個版本都是一個分支
顯式加標簽bzr tag
查看標簽bzr tags
強大的版本號集合功能bzr xxx -r [start]..[end]
支持單倉庫顯式分支hg branch [name]
分支合并hg merge
顯式加標簽hg tag
查看標簽hg tags
變更集changesets
![Page 13: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/13.jpg)
Bazaar 勝出!
智能文件修改版本號集合處理方便的補丁傳遞支持HTTP服務支持FTP服務支持SFTP服務內置友好的Bazaar Smart Server
![Page 14: 080329 dvcs-vs](https://reader035.vdocuments.mx/reader035/viewer/2022081816/5465e68baf795979338b4fdb/html5/thumbnails/14.jpg)
Mercurial 勝出!
小烏龜安裝方便Windows安裝包友好健壯的跨平台工作能力強大的正則表達式匹配