2010-12-13 61 views
0

我來自CVS背景。通過克隆分支 - 我必須修改默認才能看到分支?

我嘗試通過克隆來執行分支。

hello項目當前默認樹看起來像這樣。 alt text


  1. 我嘗試從「你好」克隆項目出來「你好分支 - 通過克隆」。
  2. 我對'hello-branch-by-clone'進行了修改並提交。
  3. 我沒有對'你好'做任何修改。
  4. 我執行從'hello-branch-by-clone'推送到'hello'。

alt text

我希望看到一個分支,但我沒有。


這次,我嘗試了另一種方式。

  1. 我做了'hello-branch-by-clone'並提交的修改。
  2. 我對'你好'進行了修改並提交。
  3. 我需要從'hello'拉到'hello-branch-by-clone',然後合併。
  4. 我執行從'hello-branch-by-clone'推送到'hello'。

這一次,那麼只有本人可以看到分支 alt text


通過應用克隆技術,是沒有什麼辦法可具有分支視圖,而不必顯式地修改默認存儲庫(hello

+0

你是什麼意思的「在一個單獨的分支」? 只有一個標籤爲「在trunk上修改」的提交,所以你的GUI客戶端正在向你顯示正確的一切。 你的意思是說你想要一個命名分支?你能畫出或表明你如何預期輸出看起來? – 2010-12-13 17:44:57

+0

已更新供您參考。 – 2010-12-13 17:53:39

+0

只有在主存儲庫中有您在克隆中沒有的變更集時,您纔會看到。除非實際上有平行分支,否則你不會看到這樣的分歧路徑。既然你沒有這些,那麼歷史就會直線上升。 – 2010-12-13 18:05:08

回答

1

沒有分支,因爲沒有兩個變更集共享父項。

克隆存儲庫在任何方面都不是特殊的。它與原始相同。承諾它與原始回購中的提交相同。它們不被概念性地標記爲在分支上。克隆只是擁有另一個工作區域的好方法,您可以在不影響原始效果的情況下完成一些工作(包括提交)。

當兩個或多個提交具有相同的父級時,會發生分叉。通常在使用克隆時發生這種情況,但它可能不會。如果同一父母只有一個變更集,則不存在分支。

在你的第一個序列之後,你剛剛引入了一個變量集(4),它有一箇舊尖端(3),因爲它是父對象,所以它仍然是一條直線。只有當你引入由(3)支持的第二個變更集時,你纔會看到一個叉子。

現在請記住,即使您將變更集「推回」,並且原始「Hello」回購包含所有4個變更集,它的工作目錄仍指向變更集(3)。它會保持這種方式,直到你在裏面運行'hg update'。這意味着如果你在「Hello」中進行提交,它將基於(3),然後出現一個分支。這個提交沒有關係。

這就是你在第二個序列中所做的。

希望有所幫助。


我試圖使用此「叉」一詞,因爲「分支」有很多含義,包括「汞分支」命令,做一些稍微不同的東西。