2010-11-10 54 views
0

因为它似乎当在Mercurial中,是否有可能在一个shell中有默认分支,而在另一个shell中是否有另一个分支“bugfix”?

hg up default 

hg up bugfix 

在一个击壳被用于像,那么其他外壳也自动如果hg branch用于显示它是哪个分支变为该分支。 (所以我想如果它是一个 Ruby on Rails服务器运行,突然间,代码会改变到另一个分支)

如果使用两个单独的克隆,它可以完成...就好像存在两个分支......但可以使用hg的分支功能来完成?

回答

1

不同的shell似乎在同一个版本库目录上工作。这是行不通的,因为目录是发生更新的地方,而不是shell。

所以你真的需要两个存储库目录,即克隆为了做到这一点。

如果这些目录在同一个文件系统上,这将不会花费太多时间或空间,因为Mercurial通过使用硬链接优化了这种情况。

至少如果你在一个支持硬链接的操作系统上。

5

您必须使用两个单独的克隆。

想一想。你正在研究两个不同版本的文件。内容不同。您必须更改文件以反映两个分支之一。单个文件如何同时有两个不同的内容(你的双壳理念)?

一个不同的比喻:一个shell是一个窗口。该文件是房间中的一个物体。即使你有两扇窗户看着同一个房间,你也不能让房间里的一个物体同时变成两件不同的东西。要做到这一点,请在隔壁建立一个相同的房间,修改对象,并将第二个窗口连接到克隆房间。

+0

这是真的......最初我想'hg up '可以为操作系统文件系统添加一层抽象......但显然它只是改变文件。 – 2010-11-11 01:55:45

1

如果用“shell”表示两个命令shell打开到同一个目录,那么是的,它们都改变了,因为它们使用相同的工作目录。

一个工作目录只能位于存储库历史记录中的一个位置。

要同时在项目中使用两个不同的分支或变更集,请从第一个开始创建第二个克隆,然后您可以分别独立操作。

相关问题