因为好像什么时候
hg up default
或
hg up bugfix
在一个Bash shell中使用,如果使用hg branch
来显示它是哪个分支,则另一个shell也会自动更改为该分支。 (所以我想如果是的话
Ruby on Rails服务器运行,突然之间,代码将改为另一个分支)
如果使用两个单独的克隆,可以完成......好像有两个分支......但可以使用hg的分支功能完成吗?
答案 0 :(得分:5)
您必须使用两个单独的克隆。
想一想。您正在处理两个不同版本的文件。他们的内容不同。您必须更改文件以反映两个分支之一。单个文件如何同时具有两个不同的内容(您的双壳创意)?
一个不同的类比:shell是一个窗口。该文件是房间中的一个对象。即使你有两个窗户看着同一个房间,你也不能让房间里的一个物体同时成为两个不同的东西。要做到这一点,在隔壁做一个相同的房间,修改对象,并将第二个窗口连接到克隆的房间。
答案 1 :(得分:1)
不同的shell似乎在同一个存储库目录中工作。这不起作用,因为目录是更新发生的地方,而不是shell。
所以你真的需要两个存储库目录,即克隆,以便做到这一点。
如果这些目录位于同一个文件系统上,那么Mercurial会通过使用硬链接来优化这种情况,因此不会花费太多时间或空间。
至少如果您使用的是支持硬链接的操作系统。
答案 2 :(得分:1)
如果用“shell”表示两个命令shell打开到同一个目录,那么是的,它们都会改变,因为它们正在使用相同的工作目录。
一个工作目录只能位于存储库历史记录中的一个位置。
要同时在项目中使用两个不同的分支或变更集,请从第一个开始进行第二个克隆,然后您可以单独操作每个分支。