我在BitBucket上有一个repo:
$ hg paths
default = https://bitbucket.org/mine/project
upstream = https://bitbucket.org/theirs/project
现在我想比较我的回购的(本地)状态和它的上游。使用git我只写git diff --stat upstream/master origin/master
但hg似乎不接受远程分支名称作为参数:
$ hg diff --stat upstream/default default/default
default/default: No such file or directory
upstream/default: No such file or directory
我猜我可能会将其指定为revset,但我无法正确使用语法而无法找到任何示例。
问题Mercurial - compare local and remote repositories?似乎有关,但只显示了本地和远程状态之间的差异;我想看看远程状态和分叉的上游远程之间的区别。
答案 0 :(得分:3)
找到了一种使用revsets的方法,虽然它仍然感觉过于复杂:
$ hg diff -r "remote('.', 'upstream') - remote('.', 'default')"
并生成补丁:
$ hg export -v -g -r "remote('.', 'default') - remote('.', 'upstream')" -o %r-%m.patch
答案 1 :(得分:2)
问题Mercurial - 比较本地和远程存储库? 看似相关,但这只是显示本地和。之间的差异 远程状态;我想看看远程状态和 分叉的上游遥控器。
Mercurial不包含本地远程状态。它具有本地状态和远程状态,但不具有远程最后看起来像的本地内存。对于99%的用途,您会发现hg incoming upstream
和hg outgoing upstream
会告诉您如果进行推送或拉动会得到什么,这是问题的一般形式。
如果您在Mercurial中使用书签作为分支(Mercurial功能书签最接近于git分支的模拟),那么您可以将--bookmarks
添加到incoming
和outgoing
行输出将告诉您本地featurebranchbookmark
与远程featurebranchbookmark
的区别。
答案 2 :(得分:0)
以hg summary --remote
形式提及问题hg summary --remote -R UPSTREAM-BUNDLE
中的建议?
由于:
使用--remote选项,这将检查传入和传出更改的默认路径
即你可以使用上游,上游数据必须已经在某种程度上是本地的
-R - 存储库REPO存储库根目录或覆盖包文件的名称
你可以使用bundle欺骗命令(hg incoming ... --bundle的结果)而不是存储库
PS :从两个遥控器和两个头部的两个头部拉动可以更快的方式