Come impostare una revisione del codice utilizzando Gitlab?


86

Come si imposta una revisione del codice utilizzando Gitlab? Lo vedo elencato come una funzionalità sul sito Web di Gitlab, ma non riesco a trovare istruzioni su come configurarne uno (del resto, qualsiasi collegamento a un manuale utente di Gitlab sarebbe molto apprezzato).

Alcune delle mie ricerche hanno indicato che le "richieste di unione" sono la strada da percorrere ... ma le trovo limitanti. Una richiesta di unione emessa mostra tutti i commit tra un ramo e l'altro. Mi sembra di essere in grado di visualizzare solo le differenze generate per ogni singolo commit. Ad esempio, diciamo che ho un file che voglio rivedere. È un nuovo file ma ho apportato modifiche ad esso su 10 commit su un ramo di sviluppo. Se emetto una richiesta di unione per quel ramo dev dall'integrazione vedo 10 commit ognuno dei quali mostra le modifiche incrementali apportate al file ... Voglio rivedere l'intera cosa. È nuovo!

Sto abbaiando sull'albero sbagliato qui? Esiste un vero strumento di revisione del codice che posso usare in GitLab o le richieste di unione sono la strada da percorrere e, se lo sono, le sto usando in modo errato? qual è il modo migliore per impostare una corretta revisione del codice qui?


2
GitLab 6.4 e la sua visualizzazione diff side-by-side possono aiutare per la revisione del codice: vedi la mia risposta sotto
VonC

1
Con GitLab 13.1 (giugno 2020), ora hai Merge Request Review. Vedi la mia risposta modificata di seguito
VonC

Risposte:


25

Nota: a partire da GitLab 6.4, è disponibile la visualizzazione del diff side-by-side : vedere " richiesta pull 5308 ".

(Luglio 2013)Non è ancora possibile commentare ogni riga, solo a livello di file.
Daniel Sokolowski menziona nei commenti che i commenti per riga sono ora supportati (09/2014):

I membri del tuo team possono commentare la richiesta di unione in generale o su righe specifiche con commenti di riga.

Ciò può ancora aiutare per l'attività di revisione del codice.

https://f.cloud.github.com/assets/4224518/1558702/e0fe633a-4fa3-11e3-9388-3f3e445cb6d4.png


6 anni dopo, per GitLab 13.1 (giugno 2020) :

Revisioni richieste di unione spostate in Core

Originariamente introdotto in GitLab 11.4 come funzionalità GitLab Premium, le revisioni delle richieste di unione consentono ai revisori delle richieste di unione di:

  • inviare più commenti contemporaneamente,
  • ridurre il rumore di notifica per l'autore della richiesta di unione e
  • consentendo un processo di revisione più coerente e snello.

https://about.gitlab.com/images/13_1/batch_comments.png

Dalla sua introduzione, abbiamo rivalutato la sua posizione nel nostro modello di prezzo basato sull'acquirente e come parte della 13.1 siamo entusiasti di annunciare che questa funzionalità è ora trasferita a GitLab Core.

Vedere la documentazione e il problema


I commenti per riga ora sono supportati: "I membri del team possono commentare la richiesta di unione in generale o su righe specifiche con commenti di riga." ( about.gitlab.com/2014/09/29/gitlab-flow )
Daniel Sokolowski

1
@DanielSokolowski Fantastico! Ho incluso il tuo commento nella risposta per una maggiore visibilità.
VonC

9

Eseguo revisioni del codice in Gitlab da oltre due mesi quasi senza problemi. Ho configurato rss2email per inviare notifiche e-mail ogni volta che uno sviluppatore invia nuovi commit. Quindi utilizzo la funzione di commento di Gitlab per i commit per fare alcuni commenti sul codice inviato.

Sfortunatamente, Gitlab non consente commenti sui file stessi, solo nei commit (proprio come Github, immagino). Ogni volta che mi trovo in una situazione in cui devo commentare qualcosa che mi è sfuggito in un commit precedente, utilizzo lo strumento di colpa per trovare il commit che ha introdotto / modificato la sezione di codice da commentare.

Non è affatto perfetto, ma finora funziona bene.


1
Invece di rss2email si potrebbe usare le notifiche di Gitlab per ricevere notifiche sui push.
vadipp

Ho lo stesso problema / soluzione alternativa. Credo che sarebbe una bella aggiunta di funzionalità che tu possa aggiungere un commento al commit giusto incolpando una particolare riga nella visualizzazione diff o file (intendo dall'interfaccia web sfogliando file o diff, senza dare la colpa).
AlejandroVD

2

È possibile visualizzare il codice inviato nella richiesta di unione per un altro repository o nel repository corrente.
esempio http://demo.gitlab.com/diaspora/diaspora/commits/master

Quindi è possibile aggiungere commenti alle modifiche ai file salvate (pulsante Reply) o all'intero commit

esempio http://demo.gitlab.com/diaspora/diaspora/commit/42f47626890218a180870bc3f44ec57625b0779c

La comunicazione risultante è la revisione del codice . Tuttavia, personalmente raccomando di eseguire la revisione del codice su un PC con comunicazione faccia a faccia quando possibile e di utilizzare strumenti per la registrazione dei risultati o quando sono necessarie più formalità.

Per un file revue che ha molti commit, ad esempio http://demo.gitlab.com/diaspora/diaspora/blame/master/README.md guardalo usando blameper capire chi ha fatto cosa. Tuttavia in questa visualizzazione non è possibile comunicare e aggiungere commenti. In questo caso, consiglierei di aggiungere le modifiche come commenti.


7
Ottengo un 404 per il primo, secondo e ultimo collegamento nella tua risposta.
Bryan Oakley

1
Come si dice nella home page, demo.gitlab.com "È UN SANDBOX - viene ripristinato ogni ora", quindi tutti gli esempi sono stati cancellati. Questo non è un buon veicolo per esempi.
Uriah Blatherwick,

Sì, riconsiderare l'impostazione con esempi adeguati. La tua risposta sembra essere un consiglio generalmente solido.
dati

0

Sì. Le richieste di unione sono il modo in cui vengono eseguite le revisioni tra pari.

Dovrebbe esserci una scheda "diff" che mostrerà i cambiamenti di tutti i commit (menzionati qui: http://youtu.be/DyAX8ws5OIc?t=3m2s ).

Il video spiega anche bene come può essere utilizzato per la revisione tra pari.


0

Il normale caso d'uso delle revisioni del codice è quello di rivedere il codice su un ramo prima di fonderlo in master o simili. Ho una situazione in cui ho sviluppato un progetto e desidero che tutto il codice venga rivisto da tutti i membri del team.

Quello che ho fatto è stato:

Effettua il checkout del primo commit, apporta una modifica, commit e push

git co -b FIRST_COMMIT eb67f06c2b3222c0219214b176c41922bc454881
vi README.md
git add README.md
git ci -m "First commit modified so can get full diff against it"
git push --set-upstream origin FIRST-COMMIT

Effettua il checkout dell'ultimo commit, apporta una modifica, commit e push

git co -b master
vi README.md
git add README.md
git ci -m "Last commit modified so can get full diff against it"
git push --set-upstream origin LAST-COMMIT

In GitLab / GitHub, crea una richiesta pull

  • È una fusione da LAST_COMMIT a FIRST_COMMIT

Per me va bene!


Questo non ti lascia con due rami "spazzatura" nel repository e nessuna traccia dei commenti nel ramo principale? Se i commenti richiedono modifiche al codice, li unisci al master?
user2084572

Sì, ci saranno rami FIRST_COMMIT e LAST_COMMIT facili da eliminare ( git br --delete --force origin FIRST_COMMIT LAST_COMMIT; git br --delete --force FIRST_COMMIT LAST_COMMIT). È possibile utilizzare un master di diramazione diverso per contenere le modifiche o creare manualmente problemi separati. E successivamente crea uno o più rami (ad es. Uno per numero) se c'è troppo feedback.
HankCa
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.