Comment comparer deux révisions dans Bitbucket?

126

Mon équipe utilise Bitbucket pour notre référentiel git et nous avons récemment commencé à utiliser la fonctionnalité de demande d'extraction pour les révisions de code. Cela fonctionne bien lors du premier examen, mais s'il passe par plusieurs itérations (c'est-à-dire que des modifications sont apportées et que la demande d'extraction est mise à jour), j'aimerais voir un lien avec uniquement les nouvelles modifications apportées depuis la dernière révision du code.

J'ai regardé dans la fonctionnalité «comparer» mais l'interface utilisateur semble pouvoir comparer uniquement entre les branches. Existe-t-il un moyen simple d'obtenir une différence entre deux commits?

brian.keng
la source
Introduction au travail avec les pull requests ou à la révision au niveau de la validation d' une nouvelle fonctionnalité de bitbuckt 4.8
surfmuggle

Réponses:

99

Ce n'est qu'une légère modification des réponses déjà données mais ajouter #diff à la fin au lieu de #commits est généralement ce que je recherche. De plus, comme d'autres l'ont peut-être mentionné, les meilleurs résultats pour moi sont généralement obtenus en plaçant le commit le plus récent en premier et le plus ancien une seconde, mais cela dépendra de vos besoins particuliers.

https://bitbucket.org/<OWNER>/<REPO>/branches/compare/<commit-hash>..<commit-hash-older>#diff
Hibou de nuit
la source
2
Je souhaite qu'ils ajoutent une interface graphique intuitive pour suivre la révision de commit (similaire à gerrit)
dolbi
1
J'ai essayé cette réponse aujourd'hui sans succès. Quelqu'un peut-il vérifier qu'il est toujours valide avec la version actuelle de Bitbucket?
Martin Stålberg
J'ai juste essayé ceci avec deux commits du projet tortoisehg et cela semble toujours fonctionner. Voici un exemple de lien: bitbucket.org/tortoisehg/thg/branches/compare
Night Owl
1
A très bien fonctionné. Inséré le owner/repo, copié les hachages de la liste de validation, appuyez sur Entrée et bam. Vue de différence agréable et facile. 👍 (Pourquoi ce n'est pas une chose évidente dans leur interface graphique cependant ...)
Svish
1
@NightOwl - Utilisez-vous le serveur Stash / bitbucket? Si tel est le cas, cela ne fonctionne que sur bitbucket.org - jira.atlassian.com/browse/BSERV-2550
Cinderhaze
25

Essayez quelque chose comme:

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

Tiré de: https://bitbucket.org/site/master/issue/4779/ability-to-diff-between-any-two-commits

Aguardientico
la source
1
Ne fonctionne pas dans la version 4.14. Donne une erreur Dead Link lorsque vous ajoutez quelque chose après avoir compare/inclus ce qui précède.
Juha Untinen
Idem avec l'autre syntaxe mentionnée dans bitbucket.org/site/master/issues/11657/… qui donne juste un 404 générique et le chemin en dessous.
Juha Untinen
25

Bitbucket prend désormais en charge la comparaison des balises.

https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<tag1>%0D<tag2>
Tao
la source
1
Cela me donne une page mais ne fait pas de différence entre les TAGS, c'est ce que je cherchais
tristanbailey
4
Pour la postérité, cela fonctionne, mais tag1doit commencer par "v" et être plus récent, tag2c'est plus ancien. Par exemple, bitbucket.org/codsen/array-includes-with-glob/branches/compare/… - autrement ne fonctionnera pas et sans "v" cela ne fonctionnera pas - les deux cas mèneront à 404.
revelt
Cela a fait l'affaire. https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<TAG1>%0D<TAG2>?w=1#diffCela montre le diff et ignore les différences d'espaces.
Damodar Bashyal
25

Les champs de recherche dans les listes déroulantes des branches / balises de la page Comparer sur bitbucket.org prennent désormais en charge les hachages de validation collés.

Alors maintenant, vous pouvez simplement aller https://bitbucket.org/<owner>/<repo>/branches/compare/et coller les hachages dans les listes déroulantes au lieu du piratage d'URL!

dérouler, puis collez le hachage de validation

Alastair Wilkes
la source
Cela a fonctionné pour moi, mais j'avais besoin de modifier l'url pour qu'elle se termine par #diff au lieu de #commits, comme indiqué dans la réponse précédente, sinon cela n'a montré aucun changement.
MikeA
@ brian.keng pouvez-vous marquer ceci comme réponse correcte s'il vous plaît?
Ahmed Hasn.
10

J'ai Bitbucket Server, version: v4.4.1

La réponse avec moi était la suivante.

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

Je cherchais cette réponse car dans mon projet, nous utilisons des sous-modules git, et dans les pull requests, je ne peux voir que l'ancien commit sha vs le nouveau commit sha de chaque sous-module qui a changé. Il n'y a pas de lien sur lequel cliquer ou quoi que ce soit (à ma connaissance) pour accéder à cette vue diff. Cette URL me permet également de voir ce qui a changé dans les sous-modules.

Btw, si quelqu'un connaît une meilleure façon de comparer deux commits dans des sous-modules lors d'une pull request, merci de me le faire savoir.

santiago arizti
la source
13
Tout cela pour moi, sur Bitbucket Server v4.9.0, est d'afficher le premier commit. Il ne compare pas les révisions.
Jeff
@Jeff avez-vous essayé de passer <old> à <nouveau> J'aurais pu les mélanger, si c'est le cas, je corrigerai ma réponse
santiago arizti
1
Oui, même problème. En fait, en novembre 2016 (ce mois-ci), Atlassian a déclaré que cette fonctionnalité n'était pas encore prise en charge dans Bitbucket Server: jira.atlassian.com/plugins/servlet/mobile#issue/BSERV-2550 . Êtes-vous sûr qu'il fait ce que vous pensez qu'il fait sur votre système?
Jeff
J'ai trouvé que cela fonctionnait pour un sudo pour les balises, en prenant le hachage de validation pour chaque balise
tristanbailey
5

Le format d'affichage de comparaison Bitbucket est le suivant:

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

Donné un exemple ged/ruby-pg(RubyGem, une bibliothèque ruby):

Pour comparer deux versions (de la v0.18.1 à la v0.18.2)

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

Pour comparer deux révisions (de f97dd6c à 22a3612)

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

Juanito Fatas
la source
4

Accédez à votre référentiel bitbucket> Branches entrez la description de l'image ici

Cliquez sur l'icône du menu et sur comparer

Harsh Phoujdar
la source
0

Créez une balise légère pour le (s) commit (s) que vous souhaitez comparer. git -a [tagname] [commit_sha]

Ensuite, dans Bitbucket, dans le menu de comparaison (celui pour faire des pull requests) comparez simplement avec les balises.

Cyrille Cormier
la source
0

Vous pouvez également le faire dans une demande d'extraction, par exemple après que quelqu'un a poussé une branche pour corriger les résultats de l'examen. À ma connaissance, il n'y a pas encore d'interface utilisateur pour cela, mais vous pouvez entrer l'url comme ceci:

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

Isaac Baker
la source
0

À l'invite de commande

git log -p -1

Cela montre la comparaison avec la version précédente.

git log -p -5

Ceci montre les 5 dernières révisions, comparant deux versions successives (n & n-1, n-1 & n-2, etc.).

Je me rends compte que ce n'est pas idéal pour montrer la différence directe entre deux versions spécifiques.

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

Anirudha Singh
la source
-4

Via le terminal, exécutez git sur le chemin de votre projet:

git diff <new commit> <old commit>

Ex: git diff 26cf60f be5f978

Raul B Santos
la source
2
Voici comment comparer les choses avec git, sur la ligne de commande; la question était de savoir comment le faire dans Bitbucket, sur le site :)
Mark VY
bitbucket n'a pas ces fonctionnalités .. donc la ligne cmd est le seul moyen ..
Siddharth
C'est la réponse que j'ai trouvée la plus utile. D'accord, la question indique bitbucket et cette réponse fournit une solution qui fonctionne bien avec bitbucket et d'autres solutions git.
ptsw