Это было замечено в gitlab-ce выпуск 37889 , но это не может быть ошибкой.
Страница сравнения для каждого проекта позволяет вводить два SHA1,но нажатие на кнопку сравнения возвращает это сообщение:
There isn't anything to compare.
You'll need to use different branch names to get a valid comparison.
Однако сравнение от старого коммита на мастере до master
само дает ожидаемый результат (все коммиты из старогоcommit для 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, что нужно различать коммиты, а не общего предка.
Так что проверьте ваш diff-адрес: если вы видите три точки, то ожидается сообщение об ошибке.