¿Cómo comparar dos revisiones en Bitbucket?


126

Mi equipo está utilizando Bitbucket para nuestro repositorio git y recientemente comenzamos a usar la funcionalidad de solicitud de extracción para las revisiones de código. Funciona bien en la primera revisión, pero si pasa por varias iteraciones (es decir, se realizan cambios y se actualiza la solicitud de extracción), me gustaría ver un enlace con solo los nuevos cambios que se realizaron desde la última revisión del código.

Investigué la funcionalidad de "comparar", pero parece que la interfaz de usuario solo puede comparar entre ramas. ¿Hay una manera simple de obtener una diferencia entre dos confirmaciones?


Introducción al trabajo con solicitudes de extracción o revisión de nivel de compromiso de una nueva función en bitbuckt 4.8
surfmuggle

Respuestas:


99

Esto es solo una ligera modificación a las respuestas ya dadas, pero agregar #diff al final en lugar de #commits es lo que estoy buscando. Además, como otros pueden haber mencionado, los mejores resultados para mí generalmente se obtienen colocando el commit más nuevo primero y el más viejo un segundo, pero eso dependerá de sus necesidades particulares.

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

2
Desearía que agregaran una interfaz
gráfica de usuario

1
Intenté esta respuesta hoy sin éxito. ¿Alguien puede verificar que sigue siendo válido con la versión actual de Bitbucket?
Martin Stålberg

Acabo de probar esto con dos commits del proyecto tortoisehg y todavía parece funcionar. Aquí hay un enlace de ejemplo: bitbucket.org/tortoisehg/thg/branches/compare/…
Night Owl

1
Funcionó muy bien. Insertó el owner/repo, copió los hash de la lista de confirmación, presione enter y bam. Bonita y fácil vista de diferencia. 👍 (Sin embargo, por qué esto no es algo obvio en su GUI ...)
Svish

1
@NightOwl - ¿Estás utilizando el servidor Stash / bitbucket? Si es así, esto solo funciona en bitbucket.org - jira.atlassian.com/browse/BSERV-2550
Cinderhaze

25

Intenta algo como:

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

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


1
No funciona en la versión 4.14. Da un error de enlace muerto cuando agrega algo después de compare/incluir lo anterior.
Juha Untinen

Lo mismo con la otra sintaxis mencionada en bitbucket.org/site/master/issues/11657/… que proporciona solo un 404 genérico y la ruta debajo de él.
Juha Untinen

25

Bitbucket admite la comparación de etiquetas ahora.

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

1
Esto me da una página, pero no hace una diferencia entre TAGS, que es lo que estaba buscando
tristanbailey

44
Para la posteridad, funciona, pero tag1debe comenzar con "v" y ser más nuevo, tag2es más antiguo. Por ejemplo, bitbucket.org/codsen/array-includes-with-glob/branches/compare/… - al revés no funcionará y sin "v" no funcionará - ambos casos conducirán a 404.
revelt

Eso hizo el truco. https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<TAG1>%0D<TAG2>?w=1#diffEsto muestra la diferencia e ignora las diferencias de espacios en blanco.
Damodar Bashyal

25

Los campos de búsqueda en los menús desplegables de rama / etiqueta en la página Comparar en bitbucket.org ahora admiten hashes de confirmación pegados.

¡Así que ahora puedes ir https://bitbucket.org/<owner>/<repo>/branches/compare/y pegar los hash en los menús desplegables en lugar de piratear URL!

desplegable, luego pegue en hash de confirmación


Esto funcionó para mí, pero necesitaba editar la url para terminar en #diff en lugar de #commits, según la respuesta anterior, de lo contrario, no mostró cambios.
MikeA

@ brian.keng ¿puede marcar esto como respuesta correcta, por favor?
Ahmed Hasn.

10

Tengo Bitbucket Server, versión: v4.4.1

La respuesta conmigo fue esta.

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

Estaba buscando esta respuesta porque en mi proyecto usamos submódulos git, y en las solicitudes de extracción solo puedo ver el antiguo commit sha frente al nuevo commit sha de cada submódulo que cambió. No hay ningún enlace para hacer clic ni nada (que yo sepa) para saltar a esta vista de diferencias. Esta URL también me permite ver lo que cambió en los submódulos.

Por cierto, si alguien conoce una mejor manera de comparar dos confirmaciones en submódulos durante una solicitud de extracción, hágamelo saber.


13
Todo lo que esto hace por mí, en Bitbucket Server v4.9.0, es mostrar el primer commit. No compara las revisiones.
Jeff

@Jeff, ¿intentaste cambiar <old> por <new>? Podría haberlos mezclado, si es así, corregiré mi respuesta
santiago arizti

1
Sí, el mismo problema. De hecho, a partir de noviembre de 2016 (este mes), Atlassian dice que esta característica aún no es compatible con Bitbucket Server: jira.atlassian.com/plugins/servlet/mobile#issue/BSERV-2550 . ¿Estás seguro de que está haciendo lo que crees que está haciendo en tu sistema?
Jeff

Encontré que esto funciona para un sudo para etiquetas, al tomar el hash de confirmación para cada etiqueta
tristanbailey

5

El formato de vista de comparación de Bitbucket es el siguiente:

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

Dado un ejemplo ged/ruby-pg(RubyGem, una biblioteca de rubíes):

Para comparar dos versiones (de v0.18.1 a v0.18.2)

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

Para comparar dos revisiones (de f97dd6c a 22a3612)

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


4

VAYA a su repositorio de bitbucket> Ramas ingrese la descripción de la imagen aquí

Haga clic en el icono del menú y en comparar



0

Cree una etiqueta ligera para las confirmaciones que desea comparar. git -a [nombre de etiqueta] [commit_sha]

Luego, en Bitbucket, en el menú de comparación (el que hace solicitudes de extracción) simplemente compare con las etiquetas.


0

También puede hacer esto dentro de una solicitud de extracción, digamos después de que alguien empuje a una rama para corregir los resultados de la revisión. Que yo sepa, todavía no hay una interfaz de usuario para esto, pero puede ingresar la URL de esta manera:

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



-4

A través de la terminal, ejecute git en la ruta de su proyecto:

git diff <new commit> <old commit>

Ex: git diff 26cf60f be5f978


2
Así es como comparar cosas con git, en la línea de comando; la pregunta era cómo hacerlo en Bitbucket, en el sitio web :)
Mark VY

bitbucket no tiene estas características .. por lo tanto, la línea cmd es la única manera ..
Siddharth

Esta fue la respuesta que encontré más útil. Convino en que la pregunta dice bitbucket y esta respuesta proporciona una solución que funciona bien con bitbucket, así como otras soluciones git.
ptsw
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.