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.