##language:zh
#pragma section-numbers off
##含有章节索引导航的 ZPyUG 文章通用模板
<<TableOfContents>>
## 默许导航,请保留



= 如何从Windows命令行中访问SSH发布的Hg仓库? =
 参考:
  1. [[http://mercurial.selenic.com/wiki/AccessingSshRepositoriesFromWindows|AccessingSshRepositoriesFromWindows - Mercurial]]
   1. [[http://mercurial.selenic.com/wiki/SharedSSH|SharedSSH - Mercurial]]
   1. [[http://mercurial.selenic.com/wiki/Trust|Trust - Mercurial]]
  1. [[http://www.codza.com/mercurial-with-ssh-setup-on-windows|codza » mercurial with ssh setup on windows]]
   1. [[http://www.haijd.net/article/index.php?action=read&id=780|Mercurial + TortoisePlink.exe 连接 SSH 服务器 - haijd Article]]
   1. [[http://dev.openttdcoop.org/projects/home/wiki/Configuring_TortoiseHg_(Windows)|Configuring TortoiseHg (Windows) - #openttdcoop Development Zone]]

##startInc
== 准备 ==
`下载涉及的软件`
 1. [[http://tortoisehg.bitbucket.org/download/index.html|TortoiseHg > Download]]
  * 下载并安装好最新版本
 1. [[http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html|PuTTY Download Page]]
  * 下载稳定版本的 ZIP 包就好! `PuTTy`是不用安装的 ;-)
  * 并先生成SSH2 密匙对:
  * {{attachment:101115-putty_599x540_scrot.png}}
   1. 在解开压缩的目录中,直接运行 `PUTTYGEN.EXE` ,'''注意'''
    * 生成密匙时,要快速的晃动鼠标,以便提供给引擎足够的随机数
    * 一般不用再设置密匙对的口令
    * 另存的私钥文件是`*.ppk`,需要提供给系统管理员部署的公钥文件为`*-pub.rsa`

== 配置 ==
 1. 确认系统目录中,有相关软件的目录
  * 操作:`开始->设置->控制面板->系统`^也可以右击我的电脑看属性^`->高级->环境变量`
  * 确保在系统`Path` 参数中,有TortoiseHg 和 putty 所在的目录!
  * {{attachment:101115-mshg0-sys-path_694x392_scrot.png}}
 1. 手工配置`mercurial.ini`
  * 操作:手工编辑Hg全局配置文件
   * 在XP 中一般是:`C:\Documents and Settings\Administrator\mercurial.ini`
   * 在Windows 其它版本中,一般自动生成在你的用户文档目录中:`C:\Documents and Settings\{用户名}\mercurial.ini`
  * 增补成以下的样子{{{
# Generated by TortoiseHg setting dialog
[ui]
username = zhouqi <zhouqi@kingsoft.com>
ssh = "Z:\Program Files\TortoiseHg\TortoisePlink.exe" -ssh -2 -i "Z:\putty\ssh\101113-zhouqi-rsa.ppk" -l zhouqi

[tortoisehg]
overlayicons = localdisks

[extensions]
color = 
graphlog = 
keyword = 
purge = 
eol =

[eol]
only-consistent = False

[defaults] 
glog = --style compact

[alias] 
ll = glog --style compact
}}}
  * 重点在 `ssh` 相关的一行,解释如下:{{{
ssh = "path\2\..\TortoisePlink.exe" -ssh -2 -i "path\2\..\...-rsa.ppk" -l zhouqi
                      |                   |     |                         +-- SSH登录帐号
                      |                   |     +-- 全路径指向 PUTTYGEN.EXE 生成并保存的私钥文件
                      |                   +-- 使用SSH2协议
                      +-- 全路径指向乌亀牌的 SSH 客户端软件;
                      从1.5.4之后TortoiseHg安装包已经内置,就在TortoiseHg 安装目录的根
}}}
 1. 启动SSH代理守护
  * 操作:`运行  PAGEANT.EXE,并加载本地私钥文件`
  * {{attachment:101115-putty-agent_680x465_scrot.png}}
  * 当然,要先通过安全渠道,将自个儿生成的公钥文件和期望的用户名,发送给系统管理员,以便[[HowtoPublishSshRepository|在服务端完成配置]]
  
== 启动 ==
 1. 初始化本地克隆
  * 操作:`开始->运行`输入'''cmd'''
   1. 移动操作目录到合适的工作目录
   1. 使用`hg clone` 命令,克隆远端仓库!
  * {{attachment:101115-mshg2-ssh-clone_624x198_scrot.png}}
   * 注意! {{{
D:\path\2\work>hg clone ssh://hg.s.kingsoft.net//r/foo
    |           |   |    |      |              +-- 服务端的绝对路径,配合URL,用 // 开头!     
    |           |   |    |      +-- Hg仓库发布域名,也可以使用IP
    |           |   |    +-- 标明使用 SSH 安全访问协议
    |           |   +-- 克隆命令
    |           +-- Mercurial 操作命令,应该是世界上最简短的版本管理起始命令了
    +-- 在Windows 中应该养成良好的工作目录习惯,一定不要在 C: 开展日常开发!
}}}
 1. 日常操作
  * 观察状态,检入本地仓库,推送到远程仓库
   * {{attachment:101115-mshg3-push_551x228_scrot.png}}
  * 查阅远程变更,下拉最新修订:
   * {{attachment:101115-mshg4_pull_scrot.png}}
  * 下拉最新修订,查阅冲突分支,使用`kdiff`完成合并:
   * {{attachment:101115-mshg5-merge_474x403_scrot.png}}
   * {{attachment:101115-mshg6-kdiff_742x508_scrot.png}}
  

##endInc

----
'''反馈'''

创建 by -- ZoomQuiet [<<DateTime(2010-11-15T17:01:08+0800)>>]

<<Include(ZPyUGnav)>>