【发布时间】:2011-06-09 21:57:07
【问题描述】:
我正在尝试找出 Mercurial 的优势,并且我读过一些关于在不影响主分支的情况下在开发人员之间提交的内容。
我知道我必须提交我的本地仓库,然后呢?我不喜欢将它推送到服务器(然后每个人都会看到它对吗?),而只是推送给一个具体的用户。我希望他为我修复一些东西并将他的变更集寄回给我。稍后我会将所有内容推送到服务器。
我该怎么做?我应该如何在 mercurial 中做到这一点?
【问题讨论】:
我正在尝试找出 Mercurial 的优势,并且我读过一些关于在不影响主分支的情况下在开发人员之间提交的内容。
我知道我必须提交我的本地仓库,然后呢?我不喜欢将它推送到服务器(然后每个人都会看到它对吗?),而只是推送给一个具体的用户。我希望他为我修复一些东西并将他的变更集寄回给我。稍后我会将所有内容推送到服务器。
我该怎么做?我应该如何在 mercurial 中做到这一点?
【问题讨论】:
在您的系统上运行hg serve。它将打印如下内容:
listening at http://yoursystem.someplace.com:8000/ (bound to *:8000)
假设其他开发者也有服务器项目的克隆,他可以运行:
hg pull http://yoursystem.someplace.com:8000
获取您的更新。
稍后您可以反转该过程以将他的更改返回给您。
【讨论】:
Hg serve 是最简单的方法,但如果防火墙阻止您这样做,您可以创建一个捆绑包并通过电子邮件发送:
hg bundle thebundlefiletocreate.bundle http://URL/of/your/central/repo
然后您可以将生成的thebundlefiletocreate.bundle 文件通过电子邮件发送给此人。他们可以通过以下方式应用它:
hg unbundle `thebundlefiletocreate.bundle`
这是一种相当笨拙的工作方式。如果可能的话,来回使用 hg serve (正如 Mark 建议的那样)会更好。理想情况下,您创建一个可以在共享服务器或驱动器上读取/写入的存储库,并且都可以推/拉到它。
【讨论】:
pull,例如,允许你拉一个分支,你也可以clone。它们非常有用。