Mercurial 簡介

7,882 views

Published on

0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,882
On SlideShare
0
From Embeds
0
Number of Embeds
4,138
Actions
Shares
0
Downloads
95
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Mercurial 簡介

  1. 1. Mercurial A Distributed Source Management System
  2. 2. 資工人:
  3. 3. 寫程式,
  4. 4. 改程式...
  5. 5. 改錯了?! 本來會動,現在不會動。
  6. 6. 備份!
  7. 7. COPY… 改之前 copy 一份起來
  8. 8. COPY… 改錯了 copy 回來
  9. 9. COPY?! 錯的蓋掉對的!
  10. 10. 更慘的..
  11. 11. 專案
  12. 12. 大家 一起寫
  13. 13. 共用 程式碼
  14. 14. 一起寫? Pair Programming
  15. 15. 不可能
  16. 16. COPY ZIP / RAR 網芳 / E-mail
  17. 17. 網芳 / E-mail UnZIP / UnRAR COPY
  18. 18. 噩夢
  19. 19. 你改,
  20. 20. 他也改…
  21. 21. 改了 哪裡? 沒人知道…:P
  22. 22. 還是 噩夢
  23. 23. 救星:
  24. 24. 版本 控制
  25. 25. 誤刪?
  26. 26. 歷史 紀錄
  27. 27. 程式碼 整合?
  28. 28. 自動 合併
  29. 29. 標示 衝突
  30. 30. </噩夢>
  31. 31. 有名的:
  32. 32. CVS 有人用過嗎?
  33. 33. Subversion (SVN) 應該有用過吧?
  34. 34. 美好世界?
  35. 35. Client-Server Centralized
  36. 36. Client:
  37. 37. 專用Client (GUI) WinCVS
  38. 38. 開發環境 整合 Eclipse, NetBeans, Vim, …
  39. 39. 作業系統 整合 TotoriseSVN
  40. 40. Server:
  41. 41. http:// svn:// svn+ssh:// 眼花撩亂…
  42. 42. 權限 控管 麻煩
  43. 43. 又是 噩夢
  44. 44. 沒網路…
  45. 45.
  46. 46. 一人 專案
  47. 47. Server? 多此一舉…
  48. 48. Local Repository 獨立的目錄
  49. 49. 仍然是 噩夢
  50. 50. 救星: 似曾相識…
  51. 51. 分散式 版本控制 後 subversion 時代
  52. 52. 自掃 門前雪
  53. 53. 熱門的 • SVK – Based on Subversion • Mercurial (Hg) – Python – Mozilla, NetBeans, OpenJDK • Git – C – Linux kernel, Ruby / Rails • Bazzar (bzr) – Python
  54. 54. Mercurial 回歸主題
  55. 55. 汞 Hg 執行檔就叫 “hg”
  56. 56. 第一步 • 建立新專案 – cd project/ – hg init – [hg add] • 目錄 – 工作目錄: project/ – 檔案庫位置: project/.hg
  57. 57. 基本指令 檔案管理 檢視修改狀況 • 加入新的檔案 • 顯示更動狀態 – hg add [FILE …] – hg status [FILE …] • 移除檔案 • 查看檔案內容變更 – hg remove [FILE …] – hg diff [-r REV] [FILE …] • 改名 • 檢視更新紀錄 – hg rename OLD NEW – hg log – hg glog (樹狀圖)
  58. 58. 送交修改 • 送交修改 – hg commit [FILE …] • 放棄修改 (工作目錄) – hg revert [FILE …] • 還原最近一次修改 (檔案庫) – hg rollback
  59. 59. 分支 (Branch) • 建立新的分支 – hg branch BRANCH_NAME • 在分支中切換 – hg update -r BRANCH_NAME – 預設分支: “default” • 列出所有分支 – hg branches
  60. 60. 標記、標籤 (Tag) • 建立新的標記 – hg tag TAG_NAME • 在分支中切換 – hg update -r TAG_NAME • 列出分支 – hg tags
  61. 61. 版本概念
  62. 62. 多人合作 • 公開檔案庫 (HTTP) – hg serve • 抓取已經存在的檔案庫內容 – hg clone EXIST_REP project/ • EXIST_REP 格式: – http[s]://server/project – svn://server/path/to/project – [file://]path/to/project
  63. 63. 多人合作 • 送出你的 (檔案庫) 修改 – hg push REMOTE • 抓取後續的 (檔案庫) 變更 – hg pull REMOTE • 更新工作目錄 (與檔案庫同步) – hg update [-r REV] • 合併更動 (到工作目錄) – hg merge [-r REV]
  64. 64. 分散式架構
  65. 65. 檔案庫合併 (前)
  66. 66. 檔案庫合併 (中)
  67. 67. 檔案庫合併 (後)
  68. 68. 工具 • Mercurial Windows Installer – http://mercurial.berkwood.com/ • Mercurial Eclipse – http://www.vectrace.com/mercurialeclipse/ • TotoriseHg – http://www.selenic.com/mercurial/wiki/index.c gi/Mercurial
  69. 69. TotoriseHg (1)
  70. 70. TotoriseHg (2)
  71. 71. 更多資料 • 官方網站 – http://www.selenic.com/mercurial/ • Cheat Sheet (小抄) – http://www.ivy.fr/mercurial/ref/v1.0/
  72. 72. The End Any Question?

×