Как сравнить две версии в Bitbucket?

126

Моя команда использует Bitbucket для нашего репозитория git, и недавно мы начали использовать функцию pull request для проверки кода. Он отлично работает при первом обзоре, но если он проходит несколько итераций (то есть вносятся изменения и обновляется запрос на вытягивание), я хотел бы видеть ссылку только с новыми изменениями, внесенными с момента последнего обзора кода.

Я изучил функцию «сравнения», но пользовательский интерфейс выглядит так, как будто сравнивать можно только между ветвями. Есть ли простой способ получить разницу между двумя коммитами?

brian.keng
источник
Знакомство с работой с запросами на вытягивание или рассмотрением на уровне коммитов новой функции в bitbuckt 4.8
surfmuggle

Ответы:

99

Это всего лишь небольшая модификация уже предоставленных ответов, но обычно я ищу добавление #diff в конец вместо #commit. Также, как другие, возможно, упоминали, лучшие результаты для меня обычно получаются, если сначала помещать более новый коммит, а второй - более старый, но это будет зависеть от ваших конкретных потребностей.

https://bitbucket.org/<OWNER>/<REPO>/branches/compare/<commit-hash>..<commit-hash-older>#diff
Ночная Сова
источник
2
Я бы хотел, чтобы они добавили некоторый интуитивно понятный графический
интерфейс
1
Я попробовал этот ответ сегодня безуспешно. Может ли кто-нибудь проверить, действительно ли он работает с текущей версией Bitbucket?
Мартин
Я просто попробовал это с двумя коммитами из проекта tortoisehg, и, похоже, он все еще работает. Вот пример ссылки: bitbucket.org/tortoisehg/thg/branches/compare/…
Night Owl
1
Сработало отлично. Вставил owner/repo, скопировал хэши из списка коммитов, нажал Enter и бац. Хороший и легкий просмотр различий. 👍 (Почему это не очевидно , что в их графическом интерфейсе , однако ...)
Svish
1
@NightOwl - Вы используете сервер Stash / bitbucket? Если да, это работает только на bitbucket.org - jira.atlassian.com/browse/BSERV-2550
Cinderhaze
25

Попробуйте что-нибудь вроде:

https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<commit1>..<commit2>#commits

Взято с: https://bitbucket.org/site/master/issue/4779/ability-to-diff-between-any-two-commits.

Aguardientico
источник
1
Не работает в версии 4.14. Выдает ошибку мертвой ссылки, когда вы добавляете что-либо после compare/включения вышеупомянутого.
Юха Унтинен
То же самое с другим синтаксисом, упомянутым в bitbucket.org/site/master/issues/11657/…, который дает только общий 404 и путь под ним.
Юха Унтинен
25

Bitbucket теперь поддерживает сравнение тегов.

https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<tag1>%0D<tag2>
Tao
источник
1
Это дает мне страницу, но не делает различий между TAGS, что я искал
tristanbailey
4
Для потомков это работает, но tag1должно начинаться с «v» и быть новее, tag2старше. Например, bitbucket.org/codsen/array-includes-with-glob/branches/compare/… - иначе не получится, и без «v» не сработает - оба случая приведут к 404.
revelt
Это помогло. https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<TAG1>%0D<TAG2>?w=1#diffЭто показывает разницу и игнорирует различия в пробелах.
Дамодар Башьял,
25

Поля поиска в раскрывающихся списках ветвей / тегов на странице сравнения на bitbucket.org теперь поддерживают вставленные хэши фиксации.

Итак, теперь вы можете просто перейти https://bitbucket.org/<owner>/<repo>/branches/compare/и вставить хэши в раскрывающиеся списки вместо взлома URL!

раскрывающийся список, затем вставьте хеш фиксации

Аластер Уилкс
источник
Это сработало для меня, но мне нужно было отредактировать URL-адрес, чтобы он заканчивался на #diff вместо #commit, в соответствии с более ранним ответом, иначе он не показал никаких изменений.
MikeA 05
@ brian.keng, пожалуйста, отметьте это как правильный ответ?
Ахмед Хасн.
10

У меня Bitbucket Server, версия: v4.4.1

Ответ со мной был такой.

http://<path-to-my-server>/projects/<project-name>/repos/<repo-name>/commits/<old>?to=<new>

Я искал этот ответ, потому что в моем проекте мы используем подмодули git, а в запросах на вытягивание я могу видеть только старый sha фиксации и новый sha фиксации каждого подмодуля, который изменился. Нет ссылки, по которой можно щелкнуть или чего-то еще (о чем я знаю), чтобы перейти к этому просмотру различий. Этот URL-адрес позволяет мне также видеть, что изменилось в подмодулях.

Кстати, если кто-то знает лучший способ сравнения двух коммитов в подмодулях во время запроса на вытягивание, дайте мне знать.

Сантьяго Аризти
источник
13
Все это для меня на Bitbucket Server v4.9.0 показывает первую фиксацию. Он не сравнивает ревизии.
Джефф
@Jeff, ты пробовал переключить <старый> на <новый>, я мог их перепутать, если да, то я
исправлю
1
Да, такая же проблема. Фактически, по состоянию на ноябрь 2016 года (в этом месяце) Atlassian сообщает, что эта функция еще не поддерживается на сервере Bitbucket: jira.atlassian.com/plugins/servlet/mobile#issue/BSERV-2550 . Вы уверены, что он делает то, что, по вашему мнению, находится в вашей системе?
Джефф
Я обнаружил, что это работает для sudo для тегов, взяв хэш фиксации для каждого тега
tristanbailey
5

Формат просмотра сравнения Bitbucket следующий:

https://bitbucket.org/<owner>/<repo>/branches/compare/<new>%0D<old>

ged/ruby-pgРассмотрим пример (RubyGem, библиотека ruby):

Для сравнения двух выпусков (от v0.18.1 до v0.18.2)

https://bitbucket.org/ged/ruby-pg/branches/compare/v0.18.2%0Dv0.18.1

Для сравнения двух ревизий (от f97dd6c до 22a3612)

https://bitbucket.org/ged/ruby-pg/branches/compare/22a361201fd1d387d59a066b179124694a446f38%0Df97dd6cb4f34da6a62c4339887249115c7c25b9c

Хуанито Фатас
источник
4

Зайдите в репозиторий Bitbucket> Филиалы введите описание изображения здесь

Нажмите на значок меню и сравните

Суровый Пхудждар
источник
0

Создайте световой тег для коммитов, которые вы хотите сравнить. git -a [имя тега] [commit_sha]

Затем в Bitbucket в меню сравнения (в том, которое выполняет запросы на вытягивание) просто сравните с тегами.

Сирил Кормье
источник
0

Вы также можете сделать это внутри запроса на перенос, например, после того, как кто-то отправит запрос в ветку, чтобы исправить результаты проверки. Насколько мне известно, для этого еще нет пользовательского интерфейса, но вы можете ввести URL-адрес следующим образом:

https://<bitbucket-server>/projects/<PROJECT>/repos/<REPO>/pull-requests/<PR-NUM>/<commit-hash>?since=<commit-hash-older>

Исаак Бейкер
источник
0

В командной строке

git log -p -1

Здесь показано сравнение с предыдущей версией.

git log -p -5

Это показывает последние 5 ревизий, сравнивая две последовательные версии (n & n-1, n-1 и n-2 и т. Д.).

Я понимаю, что это не идеально, чтобы показать прямую разницу между двумя конкретными версиями.

Ссылка https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History

Анирудха Сингх
источник
-4

Через терминал запустите git на пути к вашему проекту:

git diff <new commit> <old commit>

Пример: git diff 26cf60f be5f978

Рауль Б. Сантос
источник
2
Вот как сравнивать вещи с git в командной строке; вопрос был в том, как это сделать в Bitbucket, на сайте :)
Mark VY
bitbucket не имеет этих функций .. следовательно, строка cmd - единственный способ ..
Сиддхарт,
Это был самый полезный ответ. Согласен, в вопросе говорится, что битбакет, и этот ответ действительно предоставляет решение, которое хорошо работает с битбакетом, было хорошо, как и другие решения git.
ptsw 03