Gitlab分支/标签比较从较低版本到更新版本

时间:2018-06-08 10:51:56

标签: compare gitlab diff

我创建了两个标记,并将Tag1保持为Source,将Tag2保持为Target进行比较,然后输出为没有要比较的内容。 您需要使用不同的分支名称才能获得有效的比较。

如果我将标签互换,即Tag2为Source,Tag1为Target,则diff会正确显示。当更新版本位于diff

时,为什么Target未显示?

1 个答案:

答案 0 :(得分:2)

这已在gitlab-ce issue 37889中看到,但这可能不是一个错误。

  

每个项目的比较页面允许输入两个SHA1,但点击比较按钮会返回以下消息:

There isn't anything to compare.
You'll need to use different branch names to get a valid comparison.
  

但是,从master上的旧提交到master本身的比较给出了预期的结果(显示了从旧提交到master的HEAD的所有提交),因此似乎功能在那里。

使用最新的10.x GitLab版本仍然可以看到这一点。

issue 25162的评论说明了这个问题:

  

e1bf40e23d0074a6进行比较可以正常工作。但是,颠倒顺序和“没有什么可比较的。”。

     

这个没关系:
  e1bf40e2...3d0074a6

     

这个不合适:
  3d0074a6...e1bf40e2

可是:

  

我不确定这是否是一个错误,但我也不知道GitLab中比较工具的意图是什么。

     

我假设GitLab正在使用3个点进行2次提交。 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区分提交而不是共同的祖先。

请检查您的差异网址:如果您看到三个点,则会出现错误消息。