2010-11-10 51 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打開到同一個目錄,那麼是的,它們都改變了,因爲它們使用相同的工作目錄。

一個工作目錄只能位於存儲庫歷史記錄中的一個位置。

要同時在項目中使用兩個不同的分支或變更集,請從第一個開始創建第二個克隆,然後您可以分別獨立操作。

相關問題