若是大家公司是用 SVN 做爲代碼倉庫的話,確定常常碰到一個問題,沒有寫好的代碼、沒有通過仔細測試的代碼,沒有提交到代碼倉庫的信息,省得影響其餘人的使用。 html
若是你是在 Windows 下,推薦使用 TortoiseHg 客戶端,理由無需多說。 python
若是你要配合 Subversion 來使用 HG,官方提供了三種方式,各位能夠根據本身的喜愛選擇。咱們這裏選擇 hgsubversion 插件的方式。 服務器
通常來講,會使用 Subversion 的人,使用 TortoiseHg 都會上手特別快,這裏有一份爲 SVN 熟手準備的 Hg 簡明教程。 svn
使用 TortoiseHg 有下面幾個要迅速掌握的東西: 測試
安裝 hgsubversion 插件,最簡單的方法,不外乎直接把這個插件 clone 下來,官網上已經把標準的命令行方法講清楚了。我這裏截一張 Windows TortoiseHg 的圖下來,看看: spa
配置 hgrc 文件,讓 hg 找到 hgsubversion 這個插件。若是你用的是 TortoiseHg ,能夠直接在 Hg Workbench 界面裏的 setting 裏進行操做,裏面有一個大大的*編輯文件*按鈕。 插件
在配置文件裏,添加下面的內容。 命令行
[extensions] hgsubversion = D:\Program Files\TortoiseHgExtentions\hgsubversion\hgsubversion
注意,這裏要設置到子目錄 hgsubversion 裏,不然會提示找不到 hgsubversion 這個插件。 日誌
若是你想看看這個插件是否安裝好了,能夠試一下這個命令: code
hg help hgsubversion
看提示你就知道是否一切正常了。
下面能夠檢出系統代碼了!點擊鼠標右鍵,在 Hg 菜單裏點擊 clone 選項,按下圖所示填寫SVN檢出信息:
若是你填入 SVN 地址的時候,碰到如下問題:
% hg clone --verbose svn+https://127.0.0.1/svn/TestProject/01項目文檔 -- E:\test\testhg 停止: URL 'https://127.0.0.1/svn/TestProject/01項目文檔' is malformed or the scheme or host or path is missing (SVN_ERR_RA_ILLEGAL_URL) [command returned code 255 Thu Apr 14 15:10:06 2011]
這是由於你的路徑裏包含有中文字符串,這在 SVN 的 URL 裏嚴格來講是要用不少轉義字符來表達的。若是你把
https://127.0.0.1/svn/TestProject/01項目文檔
改成svn路徑:
https://127.0.0.1/svn/TestProject/01%E9%A1%B9%E7%9B%AE%E6%96%87%E6%A1%A3
就可以順利檢出 SVN 文檔。
什麼?你不知道怎麼得到這個地址,你能夠查看你 SVN 裏的記錄。
經過 hg 你在本地修改了代碼,當修改完成並所有經過測試後,你必定要提交回 Subversion 服務器,這樣別人才能看到你的代碼。
要提交修改回 Subversion 服務器很簡單,須要先確保修改都提交到了本地的 Hg 服務器裏:
$ hg commit -m 'your log info'
而後再把 hg 裏當前的代碼版本提交到 Subversion 服務器裏:
$ hg push
這樣,你就能夠把你修改的代碼提交到 SVN 代碼服務器裏了。不信,你到 SVN 代碼目錄裏 update 一下看看!
若是SVN服務器上的內容有更新,則你在 hg 裏用命令從SVN再次更新最新的內容到本地 hg 分支後,將會獲得一個奇怪的副本。
這個副本是一個新的分支,內容徹底和 SVN 上最新版本相相似;而你本地修改的代碼,將放在另一個代碼分支上。
你能夠經過點擊右鍵 ==> "Hg Workbench" 來查看這個代碼樹分支。
出現相似的狀況,你須要作的是,選擇一個代碼分支做爲你的當前分支繼續工做;或進行相應的合做操做。
爲何 clone 完了之後,卻沒有文件呢,目錄裏只有一個 .hg 目錄?
有關這個問題,瀏忙緒緒我專門寫了一個博文《把 SVN 文檔導入到 Hg 後目錄爲空的問題》來論述,嘿嘿~~
若是用上面的方法,顯得麻煩一些。若是我只是想維護一個本地的代碼倉庫,用來臨時作一個修改,測試沒問題的時候,我再提交到 SVN 倉庫裏。
這個時候,你能夠考慮用 hgsvn 來作本地的代碼版本管理,平時都提交到本地的代碼倉庫裏,一旦工做完成,則提交到 SVN 版本庫裏。
http://cn.waterlin.org/ProjectManagement/Hg.html