Come confrontare due revisioni in Bitbucket?


126

Il mio team sta usando Bitbucket per il nostro repository git e recentemente abbiamo iniziato a utilizzare la funzionalità di richiesta pull per le revisioni del codice. Funziona benissimo sulla prima recensione, ma se passa attraverso più iterazioni (ovvero vengono apportate modifiche e la richiesta pull è stata aggiornata), vorrei vedere un link con solo le nuove modifiche apportate dall'ultima revisione del codice.

Ho esaminato la funzionalità "confronta" ma l'interfaccia utente sembra che possa confrontare solo tra i rami. C'è un modo semplice per ottenere una differenza tra due commit?


Introduzione a lavorare con le richieste pull o rivedere a livello di commit una nuova funzionalità in bitbuckt 4.8
— surfmuggle

Risposte:


99

Questa è solo una leggera modifica alle risposte già fornite ma aggiungere #diff alla fine invece di #commits è di solito quello che sto cercando. Inoltre, come altri hanno già detto, i risultati migliori per me si ottengono in genere ponendo prima il nuovo committente e il secondo più vecchio, ma ciò dipenderà dalle vostre esigenze particolari.

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

2
Vorrei che aggiungessero qualche interfaccia intuitiva per tenere traccia della revisione del commit (simile a Gerrit)
— Dolbi,

1
Ho provato questa risposta oggi senza successo. Qualcuno può verificare che sia ancora valido con la versione corrente di Bitbucket?
— Martin Stålberg,

Ho appena provato questo con due commit dal progetto tortoisehg e sembra ancora funzionare. Ecco un link di esempio: bitbucket.org/tortoisehg/thg/branches/compare/…
— Night Owl

1
Ha funzionato alla grande. Inserito owner/repo, copiato gli hash dall'elenco di commit, premi invio e bam. Vista diff piacevole e facile. 👍 (Perché questa non è una cosa ovvia nella loro GUI comunque ...)
— Svish il

1
@NightOwl - Stai usando il server Stash / bitbucket? Se è così, questo funziona solo su bitbucket.org - jira.atlassian.com/browse/BSERV-2550
— Cinderhaze

25

Prova qualcosa del tipo:

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

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


1
Non funziona nella versione 4.14. Fornisce un errore Dead Link quando aggiungi qualcosa dopo aver compare/incluso quanto sopra.
— Juha Untinen,

Lo stesso con l'altra sintassi menzionata in bitbucket.org/site/master/issues/11657/… che fornisce solo un 404 generico e il percorso sotto di esso.
— Juha Untinen,

25

Bitbucket supporta ora il confronto dei tag.

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

1
Questo mi dà una pagina ma non fa una differenza tra TAGS, che è quello che stavo cercando
— tristanbailey

4
Per i posteri, funziona, ma tag1deve iniziare con "v" ed essere più recente, tag2è più vecchio. Ad esempio, bitbucket.org/codsen/array-includes-with-glob/branches/compare/… - il contrario non funzionerà e senza "v" non funzionerà - entrambi i casi porteranno a 404.
— Revelt

Questo ha funzionato. https://bitbucket.org/<OWNER>/<PROJECT>/branches/compare/<TAG1>%0D<TAG2>?w=1#diffQuesto mostra il diff e ignora le differenze di spazio.
— Damodar Bashyal,

25

I campi di ricerca nei menu a discesa branch / tag nella pagina Confronta su bitbucket.org ora supportano gli hash di commit incollati.

Quindi ora puoi semplicemente andare https://bitbucket.org/<owner>/<repo>/branches/compare/e incollare gli hash nei menu a discesa anziché l'hacking degli URL!

discesa, quindi incolla l'hash di commit


Questo ha funzionato per me, ma avevo bisogno di modificare l'URL per terminare con #diff invece di #commits, come da risposta precedente, altrimenti non ha mostrato cambiamenti.
— MikeA,

@brian.keng puoi contrassegnarlo come risposta corretta per favore?
— Ahmed Hasn.

10

Ho Bitbucket Server, versione: v4.4.1

La risposta con me è stata questa.

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

Stavo cercando questa risposta perché nel mio progetto usiamo i sottomoduli git, e nelle richieste pull posso vedere solo il vecchio commit sha rispetto al nuovo commit sha di ogni sottomodulo che è cambiato. Non c'è alcun link per fare clic o altro (che io conosca) per passare a questa vista diff. Questo url mi permette di vedere cosa è cambiato anche nei sottomoduli.

A proposito, se qualcuno conosce un modo migliore di confrontare due commit nei sottomoduli durante una richiesta pull, per favore fatemelo sapere.


13
Tutto ciò per me, su Bitbucket Server v4.9.0, è mostrare il primo commit. Non confronta le revisioni.
— Jeff,

@Jeff hai provato a passare da <old> a <nuovo> Potrei averli confusi, in tal caso, allora correggerò la mia risposta
— santiago arizti

1
Sì, stesso problema. In effetti, a partire da novembre 2016 (questo mese), Atlassian afferma che questa funzionalità non è ancora supportata nel server Bitbucket: jira.atlassian.com/plugins/servlet/mobile#issue/BSERV-2550 . Sei sicuro che stia facendo quello che pensi sia sul tuo sistema?
— Jeff,

Ho scoperto che questo funziona per un sudo per i tag, prendendo l'hash di commit per ogni tag
— tristanbailey,

5

Il formato della vista di confronto di Bitbucket è il seguente:

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

Dato un esempio ged/ruby-pg(RubyGem, una libreria ruby):

Per confrontare due versioni (da v0.18.1 a v0.18.2)

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

Per confrontare due revisioni (da f97dd6c a 22a3612)

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


4

VAI al tuo repository bitbucket> Branches inserisci qui la descrizione dell'immagine

Fai clic sull'icona del menu e su confronta



0

Crea un tag leggero per i commit che desideri confrontare. git -a [tagname] [commit_sha]

Quindi in Bitbucket, nel menu di confronto (quello per fare richieste pull) basta confrontare con i tag.


0

Puoi anche farlo all'interno di una richiesta pull, ad esempio dopo che qualcuno ha spinto un ramo per correggere i risultati delle revisioni. Per quanto ne sappia, non esiste ancora un'interfaccia utente per questo, ma puoi inserire l'URL in questo modo:

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



-4

Tramite terminale, esegui git sul percorso del tuo progetto:

git diff <new commit> <old commit>

Ex: git diff 26cf60f be5f978


2
Ecco come confrontare le cose con git, dalla riga di comando; la domanda era come farlo su Bitbucket, sul sito Web :)
— Mark VY,

bitbucket non ha queste caratteristiche .. quindi la linea cmd è l'unico modo ..
— Siddharth,

Questa è stata la risposta che ho trovato più utile. Concordato la domanda afferma bitbucket e questa risposta fornisce una soluzione che funziona bene con bitbucket e altre soluzioni git.
— ptsw
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.