我在 BitBucket 上分叉了一个仓库:
$ hg paths
default = https://bitbucket.org/mine/project
upstream = https://bitbucket.org/theirs/project
Run Code Online (Sandbox Code Playgroud)
现在我想将我的存储库的(本地)状态与其上游进行比较。使用 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
Run Code Online (Sandbox Code Playgroud)
我猜我可能可以将其指定为revset,但我无法正确使用语法,并且找不到任何示例。
问题Mercurial - 比较本地和远程存储库?看起来相关,但这只是显示了本地和远程状态之间的差异;我想看看远程状态和它所分叉的上游远程之间的区别。
找到了一种使用转速集来做到这一点的方法,尽管它仍然感觉过于复杂:
$ hg diff -r "remote('.', 'upstream') - remote('.', 'default')"
Run Code Online (Sandbox Code Playgroud)
并生成补丁:
$ hg export -v -g -r "remote('.', 'default') - remote('.', 'upstream')" -o %r-%m.patch
Run Code Online (Sandbox Code Playgroud)