我的公司正在使用 Kiln,因此开发人员可以在 Git 和 Mercurial 之间使用他们喜欢的工具。我是 Git 用户,从未使用过 Mercurial。
Kiln在使用分支时有一些不理解。当我使用 Kiln 界面创建一个新分支时,它实际上是创建一个新存储库,而不是一个分支。即使 Kiln 将其显示为“分支”而不是“存储库”。当我在 Git 中克隆存储库时,git branch -a
并没有显示我刚刚创建的远程分支。我需要独立克隆每个伪分支。
另一方面,如果我在 Git 中创建一个分支并将其推送到远程,它不会在 Kiln 上创建一个分支,而是在所有分支中都可以看到某种称为“头部”的“子分支”。非常混乱。但是显然没有办法通过 Kiln 接口创建这些与 Git 完美配合的“子分支”。我也不知道他们是否在 Mercurial 上运行良好。
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/feature2
remotes/origin/master
我确信这与 Kiln 的亲水星“哲学”有关。我对 Mercurial 做了一些研究,发现分支系统与 Git 完全不同。克隆存储库以创建分支是正常的,而在 Git 中这是无意义的。Mercurial 也有不能删除的“命名分支”,Kiln 开发人员不鼓励使用它们。我的“子分支”实际上可以是“命名分支”吗?问题是我可以使用git push origin :sub-branch
.
答案一定很明显,因为分支是 Mercurial 和 Git 的一个重要特性,Kiln 必须以简单而优雅的方式使用这两种工具进行分支工作。但我无法弄清楚 Kiln 的逻辑。我担心 Kiln 可能对 Mercurial 过于友好,并且 Git 支持可能更像是一种 hack。