如何与TortoiseHG分支


218

我下载了TortoiseHg 1.0进行评估。对于我的一生,我不知道该如何做一个分支。它似乎了解分支(例如,在其资源库浏览器中),但是我似乎找不到找到分支的方法。这似乎是一项基本功能,因为DVC经常被吹捧的好处是轻量级分支。

我在Google周围搜索,找不到关于该主题的太多讨论(至少对于最新版本而言),因此我必须假设我缺少某些内容,对吗?

更新:所以我在下面标记了乍得·伯奇的答案,以回答“新分支”问题。正如他正确指出的那样,您进行提交,然后单击分支按钮以打开分支维护对话框,您可以在其中创建新分支。我希望他们为此提供了一个上下文菜单选项。分支之后,下一个自然的问题是如何合并,这也不是显而易见的。事实证明,该选项已埋在资源库浏览器中。您需要选择另一个分支的头,右键单击,然后选择“与...合并”。


分支被严重掩埋在工作流的一个完全不直观的方面。分支和提交是两个非常不同的操作,将分支深埋在提交UI中毫无意义。因为我通常分支之前提交,所以我没有想到在提交UI下查看。即使到2016年中期,分支机构仍然没有有效记录在案;Chad Birch指出了分支文档的主要内容;它仍然很糟糕,但是正如他指出的那样,他只是使者……
arclight

Answers:


213

如docs所示,您只需要单击branch: default提交对话框顶部附近的按钮,然后更改为新的分支名称即可。


30
嗯,我看到它说“按此按钮会打开一个分支维护对话框”。确实确实打开了一个对话框,事实证明,该对话框允许创建分支,但是我确实对语句“如文档中所示”表示质疑,因为没有明确提及如何在该页面上的任何位置创建分支。我能找到。我想知道应该做什么分支才能在TortoiseHg中获得二等处理(相对于其他Tortoise *工具,它是一类的上下文菜单选项)。:-)
Michael Tiller 2010年

31
哦,我并不是想侮辱“ RTFM”之类的方式,我只需要一些短语即可链接到相关页面。也许“在文档中隐含地暗示”在这种情况下会更合适。
乍得伯奇'04

1
没汗 我也不想侮辱任何人。我只是想向所有来看过该链接的人说清楚,您确实必须阅读文档中的各行之间的链接才能获得答案,因为没有明确提及。
Michael Tiller

8
对于最新版本的Mercurial,您需要执行操作hg push --new-branch以将新分支推送到远程存储库。有关如何在TortoiseHg中执行此操作,请参见stackoverflow.com/questions/2365483
Peter Graham

26

要使用TortoiseHg启动新分支,请按Commit ...,然后在Commit消息上方,按Branch,然后“打开新的命名分支:”


9

只是想添加一下,以便将新分支推送到远程存储库,在“允许推送新分支”选项下的“同步”选项卡上有一个复选框-您必须记住此后再次将其关闭。


8

在大多数情况下,您会clone在存储库中建立分支。

然后,您可以在编辑和提交后合并单独的存储库。

这听起来可能会占用大量磁盘空间,但是在大多数操作系统上,Mercurial会进行硬链接而不是复制文件。无论如何,磁盘空间通常都很便宜,而且因为它是本地的,所以速度相当快。

如果考虑一下,每个“ checkout”(以svn术语表示)或“ clone”(以多变术语表示)实际上都是一个分支,很可能会合并回去,因此从很多意义上来说,克隆是创建分支的常用方法。


11
功能分支不方便。

同意 如果您有长期运行(半永久)的分支,例如version-1稳定分支和version-2-stable分支,则需要使用命名分支。另请参阅Mercurial分支文档
blokeley 2011年

11
-1。充其量只是一个hack。如果您正在跟踪远程存储库,则根本无法进行分支克隆,因为您无法推送本地更改。这意味着您不能与正在使用的其他开发人员共享分支。正确的分支方式是在存储库中创建一个命名分支。
彼得·格雷厄姆

8
克隆仍然是官方善变的书如何建议“大局”分支hgbook.red-bean.com/read/... 不要迁怒于送信。
blokeley

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.