Wie vergleiche ich zwei Revisionen in Bitbucket?

126

Mein Team verwendet Bitbucket für unser Git-Repository und wir haben vor kurzem damit begonnen, die Pull-Request-Funktion für Codeüberprüfungen zu verwenden. Es funktioniert gut bei der ersten Überprüfung, aber wenn es mehrere Iterationen durchläuft (dh Änderungen werden vorgenommen und die Pull-Anforderung aktualisiert), würde ich gerne einen Link nur mit den neuen Änderungen sehen, die seit der letzten Codeüberprüfung vorgenommen wurden.

Ich habe mir die "Vergleichen" -Funktionalität angesehen, aber die Benutzeroberfläche scheint nur zwischen Zweigen zu vergleichen. Gibt es eine einfache Möglichkeit, einen Unterschied zwischen zwei Commits zu ermitteln?

brian.keng
quelle
Einführung in die Arbeit mit Pull-Anfragen oder Überprüfung einer neuen Funktion in Bitbuckt 4.8
Surfmuggle

Antworten:

99

Dies ist nur eine geringfügige Änderung der bereits gegebenen Antworten, aber das Suchen von #diff am Ende anstelle von #commits ist normalerweise das, wonach ich suche. Wie andere vielleicht bereits erwähnt haben, werden die besten Ergebnisse für mich normalerweise erzielt, indem das neuere Commit zuerst und das ältere eine Sekunde lang platziert werden. Dies hängt jedoch von Ihren speziellen Anforderungen ab.

https://bitbucket.org/<OWNER>/<REPO>/branches/compare/<commit-hash>..<commit-hash-older>#diff
Nachteule
quelle
2
Ich wünschte, sie würden eine intuitive Benutzeroberfläche hinzufügen, um die Commit-Revision zu verfolgen (ähnlich wie Gerrit)
Dolbi
1
Ich habe diese Antwort heute ohne Erfolg versucht. Kann jemand überprüfen, ob es mit der aktuellen Version von Bitbucket noch gültig ist?
Martin Stålberg
Ich habe es gerade mit zwei Commits aus dem Tortoisehg-Projekt versucht und es scheint immer noch zu funktionieren. Hier ist ein Beispiel Link: bitbucket.org/tortoisehg/thg/branches/compare/...
Nachteule
1
Hat super funktioniert. Fügte das ein owner/repo, kopierte die Hashes aus der Commit-Liste, drückte die Eingabetaste und bam. Schöne und einfache Diff-Ansicht. 👍 (Warum dies jedoch in ihrer GUI nicht offensichtlich ist ...)
Svish
1
@ NightOwl - Verwenden Sie einen Stash / Bitbucket-Server? Wenn ja, funktioniert dies nur auf bitbucket.org - jira.atlassian.com/browse/BSERV-2550
Cinderhaze
25

Versuchen Sie etwas wie:

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

Entnommen aus: https://bitbucket.org/site/master/issue/4779/ability-to-diff-between-any-two-commits

Aguardientico
quelle
1
Funktioniert nicht in Version 4.14. Gibt einen Dead Link-Fehler aus, wenn Sie nach dem compare/Einfügen der oben genannten Informationen etwas hinzufügen .
Juha Untinen
Gleiches gilt für die andere in bitbucket.org/site/master/issues/11657/… erwähnte Syntax, die nur eine generische 404 und den Pfad darunter angibt .
Juha Untinen
25

Bitbucket unterstützt jetzt das Vergleichen von Tags.

https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<tag1>%0D<tag2>
Tao
quelle
1
Dies gibt mir eine Seite, macht aber keinen Unterschied zwischen TAGS, was ich gesucht habe
Tristanbailey
4
Für die Nachwelt funktioniert es, tag1muss aber mit "v" beginnen und neuer sein, tag2ist älter. Zum Beispiel wird bitbucket.org/codsen/array-includes-with-glob/branches/compare/… - anders herum nicht funktionieren und ohne "v" wird es nicht funktionieren - beide Fälle führen zu 404.
revelt
Das hat funktioniert. https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<TAG1>%0D<TAG2>?w=1#diffDies zeigt den Unterschied und ignoriert Leerzeichenunterschiede.
Damodar Bashyal
25

Die Suchfelder in den Dropdown-Listen für Zweige / Tags auf der Seite Vergleichen auf bitbucket.org unterstützen jetzt eingefügte Commit-Hashes.

Jetzt können Sie einfach https://bitbucket.org/<owner>/<repo>/branches/compare/die Hashes in die Dropdowns einfügen, anstatt URL-Hacking durchzuführen!

Dropdown-Liste, dann Commit-Hash einfügen

Alastair Wilkes
quelle
Dies funktionierte für mich, aber ich musste die URL bearbeiten, um in #diff anstelle von #commits zu enden, wie in der vorherigen Antwort angegeben, andernfalls wurden keine Änderungen angezeigt.
MikeA
@ brian.keng kannst du das bitte als richtige Antwort markieren?
Ahmed Hasn.
10

Ich habe Bitbucket Server, Version: v4.4.1

Die Antwort bei mir war dies.

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

Ich habe nach dieser Antwort gesucht, weil wir in meinem Projekt Git-Submodule verwenden und in Pull-Anfragen nur das alte Commit sha im Vergleich zum neuen Commit sha jedes geänderten Submoduls angezeigt wird. Es gibt keinen Link zum Klicken oder irgendetwas (von dem ich weiß), um zu dieser Diff-Ansicht zu springen. Mit dieser URL kann ich anzeigen, was sich auch in Submodulen geändert hat.

Übrigens, wenn jemand eine bessere Möglichkeit kennt, zwei Commits in Submodulen während einer Pull-Anfrage zu vergleichen, lassen Sie es mich bitte wissen.

santiago arizti
quelle
13
Für mich bedeutet dies auf Bitbucket Server v4.9.0 nur, das erste Commit anzuzeigen. Die Revisionen werden nicht verglichen.
Jeff
@ Jeff hast du versucht, <old> auf <new> umzuschalten? Ich hätte sie vielleicht
verwechselt.
1
Ja, das gleiche Problem. Ab November 2016 (diesen Monat) gibt Atlassian an, dass diese Funktion in Bitbucket Server noch nicht unterstützt wird: jira.atlassian.com/plugins/servlet/mobile#issue/BSERV-2550 . Sind Sie sicher, dass es das tut, was Sie denken, dass es auf Ihrem System ist?
Jeff
Ich fand, dass dies für ein Sudo für Tags funktioniert, indem ich den Commit-Hash für jedes Tag nahm
Tristanbailey
5

Das Bitbucket-Vergleichsansichtsformat lautet wie folgt:

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

Ein Beispiel gegeben ged/ruby-pg (RubyGem, eine Ruby-Bibliothek):

So vergleichen Sie zwei Versionen (von v0.18.1 bis v0.18.2)

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

Um zwei Revisionen zu vergleichen (von f97dd6c bis 22a3612)

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

Juanito Fatas
quelle
4

Gehen Sie zu Ihrem Bitbucket-Repository> Zweige Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf das Menüsymbol und dann auf Vergleichen

Harter Phoujdar
quelle
0

Erstellen Sie ein Light-Tag für die Commits, die Sie vergleichen möchten. git -a [tagname] [commit_sha]

Dann vergleichen Sie in Bitbucket im Vergleichsmenü (das Pull-Anforderungen ausführt) einfach mit Tags.

Cyrille Cormier
quelle
0

Sie können dies auch innerhalb einer Pull-Anfrage tun, z. B. nachdem jemand einen Push an eine Zweigstelle gesendet hat, um die Überprüfungsergebnisse zu korrigieren. Meines Wissens gibt es noch keine Benutzeroberfläche dafür, aber Sie können die URL folgendermaßen eingeben:

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

Isaac Baker
quelle
0

An der Eingabeaufforderung

git log -p -1

Dies zeigt den Vergleich mit der Vorgängerversion.

git log -p -5

Dies zeigt die letzten 5 Revisionen, in denen zwei aufeinanderfolgende Versionen (n & n-1, n-1 & n-2 usw.) verglichen werden.

Mir ist klar, dass dies nicht ideal ist, um einen direkten Unterschied zwischen zwei spezifischen Versionen zu zeigen.

Ref. https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History

Anirudha Singh
quelle
-4

Führen Sie git über das Terminal git auf Ihrem Projektpfad aus:

git diff <new commit> <old commit>

Ex: git diff 26cf60f be5f978

Raul B Santos
quelle
2
So vergleichen Sie Dinge mit git in der Befehlszeile. Die Frage war, wie es in Bitbucket auf der Website geht :)
Mark VY
Bitbucket hat diese Funktionen nicht .. daher ist cmd Linie der einzige Weg ..
Siddharth
Dies war die Antwort, die ich am nützlichsten fand. Einverstanden ist die Frage, dass Bitbucket und diese Antwort eine Lösung bietet, die gut mit Bitbucket funktioniert, war gut wie andere Git-Lösungen.
PTSW