Mercurial 簡介
-
Upload
chun-wen-wang -
Category
Documents
-
view
7.761 -
download
2
description
Transcript of Mercurial 簡介
Mercurial
A Distributed Source Management
System
資工人:
寫程式,
改程式...
改錯了?!
本來會動,現在不會動。
備份!
COPY…
改之前 copy 一份起來
COPY…
改錯了 copy 回來
COPY?!
錯的蓋掉對的!
更慘的..
專案
大家一起寫
共用程式碼
一起寫?
Pair Programming
不可能
COPY
ZIP / RAR
網芳 / E-mail
網芳 / E-mail
UnZIP / UnRAR
COPY
噩夢
你改,
他也改…
改了哪裡?
沒人知道…:P
還是噩夢
救星:
版本控制
誤刪?
歷史紀錄
程式碼整合?
自動合併
標示衝突
</噩夢>
有名的:
CVS
有人用過嗎?
Subversion
(SVN)應該有用過吧?
美好世界?
Client-Server
Centralized
Client:
專用Client
(GUI)
WinCVS
開發環境整合
Eclipse, NetBeans, Vim, …
作業系統整合
TotoriseSVN
Server:
http://
svn://
svn+ssh://眼花撩亂…
權限控管
麻煩
又是噩夢
沒網路…
死
一人專案
Server?
多此一舉…
Local
Repository獨立的目錄
仍然是噩夢
救星:
似曾相識…
分散式版本控制
後 subversion 時代
自掃門前雪
熱門的
• SVK– Based on Subversion
• Mercurial (Hg)– Python
– Mozilla, NetBeans, OpenJDK
• Git– C
– Linux kernel, Ruby / Rails
• Bazzar (bzr)– Python
Mercurial
回歸主題
汞 Hg
執行檔就叫 “hg”
第一步
• 建立新專案
– cd project/
– hg init
– [hg add]
• 目錄
– 工作目錄: project/
– 檔案庫位置: project/.hg
基本指令
檔案管理
• 加入新的檔案– hg add [FILE …]
• 移除檔案– hg remove [FILE …]
• 改名– hg rename OLD NEW
檢視修改狀況
• 顯示更動狀態– hg status [FILE …]
• 查看檔案內容變更– hg diff [-r REV] [FILE …]
• 檢視更新紀錄– hg log
– hg glog (樹狀圖)
送交修改
• 送交修改
– hg commit [FILE …]
• 放棄修改 (工作目錄)
– hg revert [FILE …]
• 還原最近一次修改 (檔案庫)
– hg rollback
分支 (Branch)
• 建立新的分支– hg branch BRANCH_NAME
• 在分支中切換– hg update -r BRANCH_NAME
– 預設分支: “default”
• 列出所有分支– hg branches
標記、標籤 (Tag)
• 建立新的標記
– hg tag TAG_NAME
• 在分支中切換
– hg update -r TAG_NAME
• 列出分支
– hg tags
版本概念
多人合作
• 公開檔案庫 (HTTP)
– hg serve
• 抓取已經存在的檔案庫內容– hg clone EXIST_REP project/
• EXIST_REP 格式:
– http[s]://server/project
– svn://server/path/to/project
– [file://]path/to/project
多人合作
• 送出你的 (檔案庫) 修改– hg push REMOTE
• 抓取後續的 (檔案庫) 變更– hg pull REMOTE
• 更新工作目錄 (與檔案庫同步)– hg update [-r REV]
• 合併更動 (到工作目錄)– hg merge [-r REV]
分散式架構
檔案庫合併 (前)
檔案庫合併 (中)
檔案庫合併 (後)
工具
• 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
TotoriseHg (1)
TotoriseHg (2)
更多資料
• 官方網站
– http://www.selenic.com/mercurial/
• Cheat Sheet (小抄)
– http://www.ivy.fr/mercurial/ref/v1.0/
The End
Any Question?