我们有两个存储库:myapp
和myapp-1.1
。我们将myapp-1.1合并到myapp中。
要查看1.1中是否有需要合并的更改,请执行以下操作:
cd c:\myapp (local clone)
hg fetch (fetch from remote myapp repo)
hg in ssh://hg/myapp-1.1 (see what needs to be merged in from remote 1.1 repo)
这有效 - 但有更好的方法吗?有没有办法在不需要本地myapp克隆的情况下执行此操作?
答案 0 :(得分:5)
Mercurial对远程存储库的作用不大,除了推送或拉动它们的某些变体。
因此,您想要让Mercurial做的任何事都必须使用本地克隆。
所以不,没有办法让Mercurial检查是否需要合并两个远程存储库。
答案 1 :(得分:1)
准确地使用本地克隆有什么问题?
如果要隔离repo所在的机器上的所有操作,您可以执行以下操作:
$ ssh $hg_box
$ cd myapp; hg in /myapp-1.1
答案 2 :(得分:1)
这似乎是明显的反应,但由于Mercurial是一个完全分布式的源代码控制系统,并且每个repo都是独立的,你是否可以实际进入具有myapp的框并直接从myapp-1.1获取?我知道大多数开发团队都会保留某种集中式存储库,但这并不排除直接从您拥有的“中央”存储库中使用Mercurial。它们仍然是本地和远程存储库。
这假设您要完全合并myapp和myapp1.1。否则,几乎通过定义你正在做的事情,你必须将myapp克隆到另一个完整的存储库,然后将它与myapp-1.1合并。
答案 3 :(得分:0)
假设远程仓库和本地仓库都不允许每个分支多个头,这个命令应该告诉本地仓库是否在给定分支上有远程仓库的头部:
hg log -r $( hg in -b branch_name -n -l1 -q --template "{node}\n" )
如果本地存储库没有该变更集,但在“branch_name”处具有传出变更集,则通常它应该是需要合并的指示符。