題 如何讓TortoiseHg只拉一定分支?


我克隆了一個大型存儲庫的默認分支,現在我希望使用TortoiseHg客戶端從服務器中取出。

然而,TortoiseHg建議從所有分支機構撤出。是否可以指示它僅從當前分支拉出?

到目前為止,我已經看到建議:

  • 在客戶端設置一個鉤子以拒絕來自不需要的分支的拉動
  • 檢查TortoiseHg中的傳入修訂,只提取屬於當前分支的修訂
  • 使用Mercurial ACL擴展拒絕訪問所有分支,但拒絕訪問當前分支。

我不喜歡所有這些解決方案,因為它們都是基於客戶端的。在所有這些中,TortoiseHg實際上拉動了所有分支(即使在第二個,其中拉出的修訂被排列成在傳入的修訂視圖中呈現的包)

有沒有 hg pull -b BRANCH 相當於TortoiseHg?

謝謝。

編輯

我知道如何使用Mercurial命令行客戶端 - hg.exe完成所有這些操作。這個問題具體是關於TortoiseHg GUI客戶端。


13
2017-11-14 13:59


起源


你有沒有試過從工作台做這個?我不是在工作中使用Hg,所以我不能在這裡測試它。 - MBraedley
我一直在使用工作台,我可以找到任何選項,告訴它只拉動當前或某個分支。 - mark


答案:


這可以通過以下方式完成 Synchronize 工作台的區域。點擊 Synchronize 進入 View 菜單或 Synchronize 工具欄圖標(2個綠色箭頭出現形成一個圓圈)。在右下方窗格中,單擊 Options。輸入您要拉入的分支名稱 Branch: 編輯框。像往常一樣完成拉動。


11
2017-11-14 16:28



這似乎有效。我建議說明一下 . 作為分支名稱,它會這樣 總是 請參考您正在處理的分支機構。 - Helgi
給別人留言:有一個 Synchronize 根據該條目進入 Repository 菜單。那是 不 您正在尋找的條目。 - George Marian
@GeorgeMarian ha好點。如果View下的那個被稱為“同步選項”或“同步”,那會好得多。該選項實際上並不執行Synchronize的操作:) - O'Rooney


hg pull -r <branch name>  

欲了解更多信息: https://stackoverflow.com/questions/5796908/mercurial-how-can-i-import-only-some-changesets-from-a-repository/5798221#5798221


4
2017-11-14 14:14



我編輯了問題正文。 - mark
@Kaymar是 -b 拉一個分支。 -r 是修改。從幫助 hg pull: -r --rev REV [+] a remote changeset intended to be added ... -b --branch BRANCH [+] a specific branch you would like to pull - DaveInCaz