Clone wiki

thg / SVN

TortoiseHg for SVN Users


This page is intended as a compendium of links and helpful notes for Subversion users who are converting to, or at least trying out, Mercurial and TortoiseHg.

When learning Mercurial the first step should be the hgbook, available in html. Mercurial's wiki is also a key source.
学习Mercurial (分布式版本管理,Google翻译里面有解释“水银”这一项,因此可以理解TortoiseHg(乌龟汞)的由来) 的第一步应该从《Mercurial: The Definitive Guide》这篇指南看起;或者浏览Mercurial的WIKI也是个好主意。



Using TortoiseHg with a Subversion like workflow


As you first begin using TortoiseHg, you may want to configure some of these optional features to approach a more subversion like work flow. See the settings tool manual to learn how to configure these settings either globally or per-repository.

Post-Pull Operations


After changesets are pulled from a remote repository, TortoiseHg can perform an automated function. In the settings tool, this option can be found at the top of the Sync tab.

  1. Update - checkout the new tip changeset on your current branch. If you have uncommitted changes, this can result in a three way merge if changes in the new tip conflict with your changes (rare, but possible).
    更新 - 检出最新的修改集到你的当前分支。假如你有未提交的修改,并且最新修改集和你的修改有冲突,那就会导致一个三路合并的操作(很少出现,但还是有可能)。
  2. Fetch - automatically merge your local changesets with the pulled changesets. Requires the fetch extension to be enabled. Does not perform any merge if your repository has uncommitted changes.
    拉取 - 这将会把你的本地修改集和拉取的修改集进行自动合并。必须启用fetch程序扩展,否则不自动进行任何合并操作。
  3. Rebase - automatically rebase your local changesets onto the top of the pulled changesets. Requires the rebase extension to be enabled. Does not perform a rebase if your repository has uncommitted changes.
    变基 - 自动改变你本地修改集的父版本为最近拉取的修改集。必须启用rebase程序扩展,否则不自动执行任何变基操作。

This setting can also be changed on the fly in the Repository Explorer before you perform a pull, in case you want to change your default behavior for a single operation.

Post-Commit Push

提交 推 操作

This setting can be found on the commit tab of the settings tool. When enabled, TortoiseHg will attempt to push your local changesets to your default upstream repository after every successful commit.



By default, TortoiseHg will use kdiff3 (a graphical three way merge tool) to resolve merge conflicts. You have a number of other options. On the TortoiseHg tab of the settings tool, you will find a 'Three-way Merge Tool' configurable.
默认情况下,乌龟汞(TortoiseHg)使用的是kdiff3(一个图形化的三路合并工具)来解决合并冲突。你还有很多别的选择,在设置工具的的“TortoiseHG”选项卡中,你可以在三路合并工具(Three-way Merge Tool)的下拉框中进行选择。

  1. If you have TortoiseSVN installed and prefer TortoiseMerge you can select TortoiseMerge from the drop-down list.
    假如你已经安装了TortoiseSVN,并且更喜欢使用TortoiseMerge 工具的话,你同样可以在下拉框中选择它。
  2. If you prefer P4Merge, or some other tool supported by Mercurial, it will automatically show up in the drop-down list.
  3. If you want Mercurial to write the .BASE .LOCAL .OTHER versions for you to manually merge, chose internal:dump
    假如你想让Mercurial在手动合并的时候能修改 .BASE .LOCAL .OTHER 版本,请选择internal:dump.
  4. If you want Mercurial to prompt you whether to keep either the local or other version, chose internal:prompt
    假如你想让 Mercurial 提示你是否保留本地版本或其它版本,请选择internal:prompt
  5. If you want Mercurial to perform trivial merges internally, and leave conflict markers in place on conflicts, chose internal:merge
    假如你想让 Mercurial 能够执行琐碎的内部合并,并且在出现冲突的地方留下标记,请选择internal:merge

See merge-tools for a description of how to configure an external merge tool that was not supported "out of the box."

Using TortoiseHg as a client for a Subversion server


hgsubversion should work with TortoiseHg "out of the box", since TortoiseHg Windows installers include the SVN python bindings required by hgsubversion. Simply clone the extension to your machine, enable it, read its documentation. then clone your subversion repository.
hgsubversion 应该和乌龟汞(TortoiseHg)一样能够开箱即用,因为乌龟汞(TortoiseHg)的Windows安装包已经包含了hgsubversion所必须的SVN python bindings,所以只需要将这个扩展工具克隆(clone)到你的机子,启用它,阅读它的相关文档,然后就可以克隆你的SVN(subversion)版本库了。

mkdir C:\repos
hg clone C:\repos\hgsubversion

Add lines like these to your Mercurial.ini file

hgsubversion = C:\repos\hgsubversion

Make a test clone:

hg clone svn+ python-hg

Mercurial(分布式版本管理) 的WIKI 链接

See also