python版本管理hg mercurial
1.拉代碼 hg pull
2.提交代碼到本地 hg commit -m save
3.提交代碼到遠程分之 hg push
4.撤銷本地全部沒有提交的代碼 hg update -C
5.查看當前分支 hg branch
6.打標籤 hg tag test.version001
7.合併同一分支的遠程代碼到本地 hg up
8.將default分支上的代碼合併到本地分支
切換到開發分支 hg up dev
在dev分支merge default分支代碼 hg merge default
hg st
hg commit -m save
hg push
8.將dev分支代碼提交到default分支
hg pull
hg up default
hg st
hg branch
hg merge dev
hg commit -m mergedev
hg push
9.hg新增和刪除提交
hg add
hg remove -A
hg commit -m save
hg push
9.處理衝突
hg reset —mark save
hg resolve —mark
10.hg建立新分支
hg branch branch-1
hg ci -m’branch-1′ -u xwuxin
hg push –new-branch
#branch-1爲分支的名稱,建立後要提交,而後用hg branches才能看到全部的分支
11.查看全部頭 hg heads
12.查看置頂分支的頭 hg heads dev
若是有多的頭,須要進行merge 合併。
php
如下是轉自網上,上面屬於我的總結。
hg Mercurial安裝:html
windows下的圖形界面工具:http://tortoisehg.bitbucket.org/
命令行:http://mercurial.selenic.com/
Ubuntu安裝方式:sudo apt-get mercurialpython
Mercurial配置git
Linux/Mac: 在主目錄建立一個.hgrc作爲配置文件
windows: xp中能夠在C:\Documents and Settings下找到mercurial.ini,win7中沒有的話就在C:\Users\[user]\下面建立一個
在文件中配置用戶名,寫入:
[ui]
username = xwuxin
#配置默認路徑:
[paths]
default = http://www.xxxx.com/hg
default-push = http://www.xxx.com/hg
#配置受權,避免每次都輸入用戶名
[auth]
as3.prefix = https://bitbucket.org/xwuxin/xwuxinlibforas3
as3.username = xwuxin
as3.password = 123456expressphp.prefix = https://bitbucket.org/xwuxin/xwuxinphp
php.username = xwuxin
php.password = 123456
#設置使用 hg latest 命令來查看最近的 5 條 log
[alias]
latest = log –limit 5vim#設置擴展
[extensions]
#設置graph後,能夠用hg glog來查看分支結構
hgext.graphlog =
#設置書籤擴展
hgext.bookmarks =windows
建立分支api
hg branch branch-1
hg ci -m’branch-1′ -u xwuxin
hg push –new-branch
#branch-1爲分支的名稱,建立後要提交,而後用hg branches才能看到全部的分支編輯器
克隆倉庫工具
hg clone http://hg.xxxx.com/repo/enjoy enjoy
克隆完代碼倉庫以後,造成了三個區域。 一個是遠程的代碼倉庫R, 一個是本地的代碼倉庫L, 另一個是本地的工做區W, 對文件作修改以後,其實是改動工做區中的文件, 執行提交命令以後進入本地的代碼倉庫,而後可使用推送命令將本地代碼倉庫中的代碼推送到遠程的代碼倉庫。
提交代碼
hg commit 後面能夠指定具體要提交的文件
好比:hg commit -m’修復編碼的bug’
若是是新加入的文件 先使用 hg add 命令加入 該命令其實是提交到本地的倉庫。
推送代碼
hg push 將本地代碼庫L中的修改推送到遠程代碼庫R中
hg outgoing 指示查看要推送的代碼,但不執行推送操做
拉取代碼
hg pull 將遠程的代碼庫R中的更新拉取到本地的代碼庫L
把別的倉庫中的 ChangeSet Pull 到本倉庫
$ hg pull ../my-hello-new-output在 Pull 後, 缺省狀況下 Mercurial 不更新工做目錄。這意味着雖然 Repository 如今有變動集, 但在工做目錄中的文件仍然是Pull 以前老的內容。咱們能夠用如下Mercurial的提醒來 Update 這個文件 (也包括全部其它 Pull 時改變的文件)。
$ hg update
要看到修改還須要使用hg update 將本地代碼庫L中的更新應用到本地工做區Whg incoming 只是查看要推送的修改,但不執行拉取操做。
合併代碼
hg merge 合併代碼, 後面指定合併哪個分支。 使用hg heads 查看有哪些分支。
恢復代碼
hg revert [文件名]
hg revert –all 恢復全部代碼
這裏指的恢復代碼是指恢復你未提交到本地倉庫前當前的最新代碼。
查看狀態hg status(短寫:hg st)
hg st
M hello.c
用於查看代碼變動
以 M 開頭的行意思就是hello.c文件修改過
export 命令(用於導出項目的一個tarball,方便發佈。)
必需提供一個 Tag, 版本號或 變動集號 來告訴 Mercurial 有什麼進入了 導出(Export)
$ hg export tip
新建倉庫
直接在一個目錄中使用 hg init 便可。
啓用hg自帶的server
sudo hg serve -p 8002
#它會生成一個訪問地址。
查看文件差異
先用hg log [文件名]查看版本
hg diff -r 版本號1:版本號2
用vim一樣能夠查看兩個文件的區別
vim -d [文件名1] [文件名2]
恢復文件到特定的版本
先用hg log [文件名]查看版本
hg cat api.php -r 2009 > t.php
t.php爲新生成的文件,用原文件名會覆蓋原文件。
hgignore忽略設置
在clone下來的文件夾目錄下會發現一個文件.hgignore(注意是一個隱藏文件,須要打開顯示隱藏文件的選項)
# use glob syntax.
syntax: glob
#設置忽略後綴爲bak,orig,swp的文件
*.bak
*.orig
*.swp
#設置忽略後綴爲Thumbs.db的文件
Thumbs.db其中第一行指定語法,這裏是 glob。共有兩個選擇:
regexp: Regular expression, Python/Perl syntax.
glob: Shell-style glob
hg log
1. 查看指定版本的日誌,好比查看changeset爲3的日誌
hg log -r 3
2. 查看多個版本的日誌,好比查看1和4的
hg log -r 1 -r 4
3.使用範圍標記顯示多個版本日誌,好比顯示2,3,4三個版本的日誌
hg log -r 2:4
4.顯示摘要,好比顯示changeset爲3的
hg log -v -r 3
5.顯示變動的描述和內容,增長-p選項。好比
hg log -v -p -r 2
可使用短選項:
hg log -vpr 2
6.查看最近的幾回提交,好比這裏查看最近2次的提交
hg log -l 2
7.顯示指定用戶的提交
hg log -u [用戶名]
8.
hg heads
1. 顯示拓撲首
hg heads -t
hg tip
顯示版本庫中最新的版本的信息,-v查看詳細,-p輸出補丁
hg tip -vp
從其它版本庫取得變動:hg incoming ../my-hello //它會告訴咱們hg pull將會把哪些變動拖進版本庫,但不會真正的執行
顯示工做目錄的版本:hg parents
從新解決衝突:hg resolve 「這裏指定要解決衝突的文件」
hg 提供了一個很是高效的命令用於添加全部新增文件以及剔除全部被刪除了的文件,只須要在項目目錄下或任意子目錄下運行以下命令:
hg addremove
查看命令的使用方法
hg help [命令名稱]
好比要查看log命令的使用方法:
hg help log
修改merge編輯器,本人用的vim,支持三路合併,能夠在 ~/.hgrc 中加以更改,好比:
[ui]
username =
editor = nano
merge = XXX
這樣就配置了使用 nano 做爲默認的編輯器,XXX 做爲默認的 merge 工具。
hg branch
http://www.codingboy.com/zlog/post/21.html
http://mercurial.selenic.com/wiki/Branch
hg bookmark
Mercurial權威指南pdf版: http://dl.dbank.com/c0i1vkx8r0
官方wiki:http://mercurial.selenic.com/wiki/
Mercurial hgrc mercurial.ini配置方法:http://www.selenic.com/mercurial/hgrc.5.html
Redmine集成Mercurial:http://www.cnblogs.com/jinyong/archive/2009/03/22/1419129.html
讓Mercurial和TortoiseHg支持中文文件名/UTF-8:http://www.cnblogs.com/tinyfish/archive/2010/06/08/1754364.html
從SVN到Mercurial的遷移(英):http://www.oschina.net/question/6981_20033
git 的企業級受權工具 gitolite:
http://weiye.info/blog/2011/01/git-auth-gitolite/
http://www.ossxp.com/doc/git/gitolite.html
some article for mercurial:
hg flow:
yinwm老大參考gitflow寫的一個插件,用於規範hg的工做使用流程,強烈推薦!
https://bitbucket.org/yinwm/hgflow/wiki/Home