Jak porównać dwie wersje w Bitbucket?


126

Mój zespół używa Bitbucket do naszego repozytorium git, a ostatnio zaczęliśmy używać funkcji pull request do recenzji kodu. Działa dobrze przy pierwszej recenzji, ale jeśli przejdzie przez wiele iteracji (to znaczy, zostaną wprowadzone zmiany i zaktualizowane żądanie ściągnięcia), chciałbym zobaczyć łącze z nowymi zmianami, które zostały wprowadzone od ostatniego przeglądu kodu.

Przyjrzałem się funkcji „porównania”, ale wygląda na to, że interfejs użytkownika może porównywać tylko gałęzie. Czy istnieje prosty sposób na uzyskanie różnicy między dwoma zatwierdzeniami?


Wprowadzenie do pracy z żądaniami ściągnięcia lub przeglądu na poziomie zatwierdzenia nowej funkcji w bitbuckt 4.8
surfmuggle

Odpowiedzi:


99

To tylko niewielka modyfikacja już udzielonych odpowiedzi, ale dodanie #diff na końcu zamiast #commits jest zwykle tym, czego szukam. Również, jak inni mogli wspominać, najlepsze wyniki dla mnie zwykle uzyskuje się, umieszczając nowszy commit jako pierwszy, a starszy jedną sekundę, ale to zależy od twoich szczególnych potrzeb.

https://bitbucket.org/<OWNER>/<REPO>/branches/compare/<commit-hash>..<commit-hash-older>#diff

2
Szkoda, że nie byłoby dodać trochę intuicyjny graficzny interfejs użytkownika do śledzenia popełnić wersję (podobną do Gerrit)
Dolbi

1
Próbowałem dzisiaj tej odpowiedzi bez powodzenia. Czy ktoś może sprawdzić, czy jest on nadal ważny w aktualnej wersji Bitbucket?
Martin Stålberg

Właśnie wypróbowałem to z dwoma zatwierdzeniami z projektu tortoisehg i nadal wydaje się, że działa. Oto przykładowy link: bitbucket.org/tortoisehg/thg/branches/compare/…
Night Owl

1
Działało świetnie. Wstawiłem owner/repo, skopiowałem skróty z listy zatwierdzeń, naciśnij Enter i bam. Ładny i łatwy widok różnic. 👍 (Dlaczego jednak nie jest to oczywiste w ich GUI ...)
Svish

1
@NightOwl - Czy używasz serwera Stash / bitbucket? Jeśli tak, to działa tylko na bitbucket.org - jira.atlassian.com/browse/BSERV-2550
Cinderhaze

25

Spróbuj czegoś takiego:

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

Zaczerpnięte z: https://bitbucket.org/site/master/issue/4779/ability-to-diff-between-any-two-commits


1
Nie działa w wersji 4.14. Daje błąd Dead Link, gdy dodasz cokolwiek po compare/uwzględnieniu powyższego.
Juha Untinen

To samo z inną składnią wymienioną na bitbucket.org/site/master/issues/11657/ ... która podaje tylko ogólny 404 i ścieżkę pod nim.
Juha Untinen

25

Bitbucket obsługuje teraz porównywanie tagów.

https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<tag1>%0D<tag2>

1
To daje mi stronę, ale nie robi różnicy między
tagami

4
Dla potomnych to działa, ale tag1musi zaczynać się od „v” i być nowszym, tag2jest starsze. Na przykład bitbucket.org/codsen/array-includes-with-glob/branches/compare/… - odwrotnie nie zadziała i bez "v" nie zadziała - oba przypadki doprowadzą do 404.
revelt

To załatwiło sprawę. https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<TAG1>%0D<TAG2>?w=1#diffTo pokazuje różnicę i ignoruje różnice w białych znakach.
Damodar Bashyal

25

Pola wyszukiwania w rozwijanych gałęziach / tagach na stronie Porównaj na bitbucket.org obsługują teraz wklejane skróty zatwierdzeń.

Teraz możesz po prostu przejść do https://bitbucket.org/<owner>/<repo>/branches/compare/i wkleić skróty do list rozwijanych zamiast hakowania adresów URL!

w dół, a następnie wklej wartość skrótu zatwierdzenia


To zadziałało dla mnie, ale musiałem edytować adres URL, aby kończył się na #diff zamiast #commits, jak we wcześniejszej odpowiedzi, w przeciwnym razie nie pokazał żadnych zmian.
MikeA

@ brian.keng czy możesz oznaczyć to jako poprawną odpowiedź?
Ahmed Hasn.

10

Posiadam Bitbucket Server w wersji: v4.4.1

Odpowiedź ze mną była taka.

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

Szukałem tej odpowiedzi, ponieważ w moim projekcie używamy modułów podrzędnych git, aw żądaniach ściągnięcia widzę tylko stare zatwierdzenie sha w porównaniu z nowym zatwierdzeniem sha każdego podmodułu, który się zmienił. Nie ma linku do kliknięcia ani niczego (o czym wiem), aby przejść do tego widoku różnic. Ten adres URL pozwala mi również zobaczyć, co zmieniło się w modułach podrzędnych.

Przy okazji, jeśli ktoś zna lepszy sposób porównania dwóch zatwierdzeń w podmodułach podczas żądania ściągnięcia, daj mi znać.


13
Wszystko to dla mnie, na serwerze Bitbucket w wersji 4.9.0, to pokazanie pierwszego zatwierdzenia. Nie porównuje wersji.
Jeff

@Jeff, czy próbowałeś zmienić <stare> na <new> Mogłem je pomieszać, jeśli tak, to
poprawię

1
Tak, ten sam problem. W rzeczywistości od listopada 2016 r. (W tym miesiącu) Atlassian twierdzi, że ta funkcja nie jest jeszcze obsługiwana na serwerze Bitbucket : jira.atlassian.com/plugins/servlet/mobile#issue/BSERV-2550 . Czy na pewno robi to, co myślisz, że jest w Twoim systemie?
Jeff

Okazało się, że działa to dla sudo dla tagów, biorąc skrót zatwierdzenia dla każdego tagu
tristanbailey

5

Format widoku porównawczego Bitbucket jest następujący:

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

Podany przykład ged/ruby-pg(RubyGem, biblioteka Ruby):

Porównanie dwóch wersji (od wersji 0.18.1 do wersji 0.18.2)

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

Aby porównać dwie wersje (od f97dd6c do 22a3612)

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




0

Utwórz lekki znacznik do zmian, które chcesz porównać. git -a [zmienna] [commit_sha]

Następnie w Bitbucket, w menu porównania (tym, które wykonuje żądania ściągnięcia) po prostu porównaj z tagami.


0

Możesz to również zrobić w żądaniu ściągnięcia, na przykład po tym, jak ktoś wypchnie gałąź, aby naprawić wyniki recenzji. O ile mi wiadomo, nie ma jeszcze interfejsu użytkownika do tego, ale możesz wprowadzić adres URL w następujący sposób:

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



-4

Za pomocą terminala uruchom git na ścieżce projektu:

git diff <new commit> <old commit>

Dawny: git diff 26cf60f be5f978


2
Oto jak porównać rzeczy z git w linii poleceń; pytanie jak to zrobić w Bitbuckecie na stronie :)
Mark VY

bitbucket nie ma tych funkcji ... dlatego linia cmd jest jedynym sposobem ..
Siddharth

To była odpowiedź, którą uznałem za najbardziej użyteczną. Uzgodniono pytanie, które dotyczy bitbucket, a ta odpowiedź zapewnia rozwiązanie, które dobrze współpracuje z bitbucket, podobnie jak inne rozwiązania git.
ptsw
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.