我创建了两个标签,并通过将 Tag1 保留为Source
和 Tag2 作为Target
来比较它们,然后输出为没有什么可比较的。 您需要使用不同的分支名称才能获得有效的比较。
如果我互换标签,即 Tag2 作为Source
和 Tag1 作为Target
,那么diff
会正确显示。为什么在Target
更新版本时不显示diff
这在 gitlab-ce 问题 37889 中已经看到,但这可能不是错误。
每个项目的比较页面允许输入两个 SHA1,但单击比较按钮会返回以下消息:
There isn't anything to compare.
You'll need to use different branch names to get a valid comparison.
但是,从 master 上的旧提交与
master
本身进行比较会给出预期的结果(显示了从旧提交到 HEAD 的所有提交master
(,因此功能似乎就在那里。
这在最新的 10.x GitLab 版本中仍然可见。
问题 25162 的评论说明了该问题:
将 e1bf40e2 与 3d0074a6 进行比较按预期工作。但是,颠倒顺序并"没有什么可比较的"。
这个没问题:
e1bf40e2...3D0074A6这个不行:
3d0074a6...e1BF40E2
但:
我不确定这是否是一个错误,但我也不知道 GitLab 中比较工具的意图应该做什么。
我假设 GitLab 将 2 个提交与 3 个点进行比较。 这 3 个点将告诉 Git 使用共同祖先进行差异。
问题是
,这是3d0074a6...e1bf40e2
与执行git diff $common-ancestor e1bf40e2
相同,其中$common-ancestor
是执行git merge-base 3d0074a6 e1bf40e2
的结果e1bf40e2
所以正在发生的事情是,你正在执行
git diff e1bf40e2 e1bf40e2
这就是为什么没有区别。我猜你想在没有点的情况下执行
git diff 3d0074a6 e1bf40e2
,这将告诉 Git 区分提交而不是共同祖先。
因此,请检查您的差异URL:如果您看到三个点,则会出现错误消息。