簡體   English   中英

如何使用Git管理Kiln的分支機構?

[英]How to manage branches with Kiln using Git?

我的公司正在使用Kiln,因此開發人員可以在Git和Mercurial之間使用他們的首選工具。 我是Git用戶,從未使用過Mercurial。

使用窯的分支有一些不足之處。 當我使用Kiln接口創建一個新分支時,它實際上會創建一個新的存儲庫,而不是一個分支。 即使Kiln將其顯示為“分支”而不是“存儲庫”。 當我在Git中克隆存儲庫時, git branch -a不會向我顯示我剛剛創建的遠程分支。 我需要獨立克隆每個偽分支。

另一方面,如果我在Git中創建一個分支並將其推送到遠程,它不會在Kiln上創建分支,但在所有分支中都會顯示某種稱為“head”的“子分支”。 非常混淆。 但顯然沒有辦法創建這些通過Kiln界面與Git完美配合的“子分支”。 我也不知道他們是否在Mercurial上運作良好。

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/feature2
  remotes/origin/master

我確信這與窯的親Mercurial“哲學”有關。 我對Mercurial進行了一些研究,發現分支系統與Git完全不同。 克隆存儲庫以創建分支是正常的,而在Git中它是無意義的。 Mercurial還“命名分支”,不能刪除,並且窯開發人員不鼓勵使用它們。 我的“支行”能否真正成為“命名分支”? 問題是我可以使用git push origin :sub-branch刪除那些“子分支”。

答案必須明顯,因為分支是Mercurial和Git的重要特征,而Kiln必須使用這兩種工具完成一個簡單而優雅的分支工作方式。 但我無法弄清楚窯的邏輯。 我擔心Kiln可能對Mercurial友好,並且Git支持可能更像是一個hack。

在Kiln UI上,當您創建分支時,它是“克隆分支”,而不是Mercurial命名分支。

如果在Mercurial中使用命名分支,它們將自動轉換為Git分支。 但是,當您提交Git分支時,它將不會轉換回Mercurial中的同一個命名分支。 Kiln團隊必須找出Git分支的Git-to-Mercurial翻譯的最佳模擬,他們認為Mercurial的“書簽”效果最佳。 所以,當你推到一個Git分支,它會更新或創建一個相應的水銀書簽( https://www.mercurial-scm.org/Bookmarkshttp://mercurial.aragost.com/kick-start/en/bookmarks/ )具有相同的Git分支名稱,該書簽將位於Mercurial中的“默認”分支上。 我會與團隊中使用Mercurial的成員核實,看看使用書簽作為Git分支的類似物是否適用於他們。

另一個選擇是嘗試查看您的團隊是否喜歡Kiln UI的“克隆分支”來維護單獨的開發線,而不是使用命名分支方法。

Kiln團隊在下面的文章中討論了如何合並存儲庫。 這將為您提供合並Kiln分支/存儲庫所需的信息。 從本質上講,你正在做一個拉動,然后從一個存儲庫推送到另一個

Kiln Branch \\ Repository Merging

雖然git似乎沒有人們通常會聽到的關於hg的分支問題; Joel Spolsky表示,支持hg over git的決定來自Linus Torvalds的一項聲明/政策,該聲明/政策沒有采取任何有利於Windows用戶的git。 Joel在2011年關於FogBugz和Kiln的演講中對此進行了闡述。您可以在下面的視頻中分40:40收聽評論。

Joel Spolsky關於Mercurial Choice

早在2011年,人們可能已經同意Fog Creek的Mercurial決定,但是git世界中的事情已經明顯發展,git的采用顯然足以說服Fog Creek創建Kiln Harmony,允許使用hg或git。

窯和諧

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM