Gerrit - Guida rapida

Gerrit è uno strumento di revisione del codice basato sul web che è integrato con Git e costruito sul sistema di controllo della versione di Git (aiuta gli sviluppatori a lavorare insieme e mantenere la cronologia del loro lavoro). Consente di unire le modifiche al repository Git quando hai finito con le revisioni del codice.

Gerrit è stato sviluppato da Shawn Pearce di Google ed è scritto in Java, Servlet, GWT (Google Web Toolkit). La versione stabile di Gerrit è 2.12.2 e pubblicata l'11 marzo 2016 con licenza Apache License v2 .

Perché usare Gerrit?

Di seguito sono riportati alcuni motivi per cui dovresti usare Gerrit.

  • Puoi facilmente trovare l'errore nel codice sorgente usando Gerrit.

  • Puoi lavorare con Gerrit, se hai un client Git regolare; non è necessario installare alcun client Gerrit.

  • Gerrit può essere utilizzato come intermediario tra sviluppatori e repository git.

Caratteristiche di Gerrit

  • Gerrit è un sistema di controllo delle versioni Git gratuito e open source.

  • L'interfaccia utente di Gerrit è formata su Google Web Toolkit .

  • È un framework leggero per la revisione di ogni commit.

  • Gerrit funge da repository, che consente di spingere il codice e crea la revisione per il tuo commit.

Vantaggi di Gerrit

  • Gerrit fornisce il controllo degli accessi per i repository Git e il frontend web per la revisione del codice.

  • È possibile eseguire il push del codice senza utilizzare strumenti della riga di comando aggiuntivi.

  • Gerrit può consentire o rifiutare l'autorizzazione a livello di repository e fino al livello di filiale.

  • Gerrit è supportato da Eclipse.

Svantaggi di Gerrit

  • La revisione, la verifica e l'invio di nuovo del codice rallenta il time to market.

  • Gerrit può funzionare solo con Git.

  • Gerrit è lento e non è possibile modificare l'ordinamento in cui sono elencate le modifiche.

  • Hai bisogno dei diritti di amministratore per aggiungere un repository su Gerrit.

Prima di poter utilizzare Gerrit, è necessario installare Git ed eseguire alcune modifiche alla configurazione di base. Di seguito sono riportati i passaggi per installare il client Git su piattaforme diverse.

Installazione di Git Client

Linux

È possibile installare Git su Linux utilizzando lo strumento di gestione dei pacchetti software. Ad esempio, se stai usando Fedora, puoi usare come -

sudo yum install git

Se stai usando una distribuzione basata su Debian come Ubuntu, usa il seguente comando:

sudo apt-get install git

finestre

Puoi installare Git su Windows scaricandolo dal sito Web di Git. Vai al collegamento msysgit.github.io e fai clic sul pulsante di download.

Mac

Git può essere installato su Mac utilizzando il seguente comando:

brew install git

Un altro modo per installare Git è scaricarlo dal sito Web di Git. Vai al collegamento Git installa su Mac , che installerà Git per la piattaforma Mac.

Dopo aver installato Git, è necessario personalizzare le variabili di configurazione per aggiungere le proprie informazioni personali. È possibile ottenere e impostare le variabili di configurazione utilizzando lo strumento Git chiamato git config insieme all'opzione -l (questa opzione fornisce la configurazione corrente).

git config -l

Quando esegui il comando precedente, otterrai le variabili di configurazione come mostrato nell'immagine seguente

È possibile modificare le informazioni personalizzate in qualsiasi momento utilizzando nuovamente i comandi. Nel prossimo capitolo imparerai come configurare il nome utente e l'email dell'utente utilizzando il comando git config .

Puoi tenere traccia di ogni commit impostando il nome e le variabili email . La variabile name specifica il nome, mentre la variabile email identifica l'indirizzo email associato ai commit Git. È possibile impostarli utilizzando i seguenti comandi:

git config --global user.email "[email protected]"
git config --global user.name "your_name"

Quando esegui i comandi precedenti, otterrai il nome utente e l'indirizzo e-mail come mostrato nell'immagine seguente.

SSH è l'acronimo di Secure Shell o talvolta Secure Socket Shell protocollo utilizzato per accedere ai servizi di rete in modo sicuro da un computer remoto. Puoi impostare le chiavi SSH per fornire una connessione affidabile tra il computer e Gerrit.

Puoi controllare la chiave SSH esistente sul tuo computer locale utilizzando il seguente comando in Git Bash:

$ ls ~/.ssh

Dopo aver fatto clic sul pulsante Invio, vedrai la chiave SSH esistente come mostrato nell'immagine seguente:

Se non trovi alcuna chiave SSH esistente, devi creare una nuova chiave SSH.

Generazione di una nuova chiave SSH

Puoi generare una nuova chiave SSH per l'autenticazione utilizzando il seguente comando in Git Bash:

$ ssh-keygen -t rsa -C "[email protected]"

Se hai già una chiave SSH, non generare una nuova chiave, poiché verranno sovrascritte. Puoi usare il comando ssh-keygen , solo se hai installato Git con Git Bash.

Quando esegui il comando precedente, creerà 2 file nella directory ~ / .ssh .

  • ~/.ssh/id_rsa - È una chiave privata o una chiave di identificazione.

  • ~/.ssh/id_rsa.pub - È una tv pubblica.

È possibile aggiungere la chiave SSH a ssh-agent su diverse piattaforme discusse ulteriormente.

Linux

Utilizzare il seguente comando sul sistema Linux per aggiungere la chiave SSH

cat /home/<local-user>/.ssh/id_rsa.pub

finestre

Apri la GUI GIT e vai a Help → Show SSH Key come mostrato nell'immagine seguente.

Quindi fare clic su Copy To Clipboard pulsante, per copiare la chiave negli appunti.

Mac

In Mac OS X, puoi copiare il contenuto di id_rsa.pub negli appunti utilizzando il seguente comando.

$ pbcopy < ~/.ssh/id_rsa.pub

La chiave SSH può essere aggiunta all'account Gerrit utilizzando i seguenti passaggi:

  • Step 3 - Quindi, nell'angolo in alto a destra, fai clic sul tuo nome utente e seleziona l'opzione Impostazioni.

    Qui, abbiamo creato un account con il nome John per utilizzare Gerrit

  • Step 4 - Fai clic sull'opzione "Chiavi pubbliche SSH" nel menu a sinistra e incolla la chiave pubblica SSH nel campo.

Puoi aggiungere la chiave SSH a Git utilizzando i seguenti comandi:

  • Step 1 - Apri Git Bash e ottieni ssh-agent usando il seguente comando.

$ eval 'ssh-agent'
  • Step 2 - Successivamente, aggiungi la chiave SSH a ssh-agent utilizzando il seguente comando

$ ssh-add ~/.ssh/id_rsa
  • Step 3 - Ora, esegui ssh usando il seguente comando, che corrisponde all'impronta digitale SSH usata quando accedi per la prima volta.

$ ssh -p 29418 <user_name>@gerrit.wikimedia.org

Nello screenshot qui sopra, puoi vederlo xyz123 è il nome di un account della shell dell'istanza, che viene utilizzato durante la creazione dell'account Gerrit e Abc123 è un nome utente del tuo account Gerrit.

Puoi scaricare l'esempio usando Git insieme al codice sorgente di qualsiasi progetto organizzato su gerrit.wikimedia.org utilizzando il seguente comando Git Bash.

$ git clone 
ssh://<user_name>@gerrit.wikimedia.org:29418/mediawiki/extensions/examples

Il comando git clone clona una directory in una nuova directory; in altre parole ottiene una copia di un repository esistente . Quando esegui il comando precedente, otterrai uno screenshot simile al seguente.

Il comando precedente clona il repository 'examples' e riceve gli oggetti, i file, ecc. Da quel repository e lo memorizza nel tuo ramo locale.

Puoi lavorare con Gerrit installando git-review su diverse piattaforme come discusso in questo capitolo.

finestre

In Windows, puoi installare git-review come elencato nei passaggi seguenti.

Step 1- Prima installa Python per l'installazione di git-review.

Step 2 - Mantieni l'installazione di Python nella directory predefinita (come C: \ Python27) invece di installarla in qualsiasi altra directory.

Step 3 - Successivamente, imposta le variabili di ambiente per la directory degli script Python utilizzando il percorso come C:\Python27\;C:\Python27\Scripts\;

git_review_install

Step 4- Con la versione 2.7, Python installerà pip automaticamente. Per la versione precedente di Python 2.7, puoi installare pip come descritto in questo collegamento .

Step 5 - Esegui Git Bash aperto e installa git-review utilizzando il seguente comando.

$ pip install git-review

Linux

In Linux, puoi installare git-review come descritto nei seguenti passaggi:

Step 1Gli utenti della piattaforma Linux non hanno accesso root sull'host condiviso. Quindi, senza accesso root, puoi installare git-review localmente nella directory utente utilizzando i seguenti comandi:

virtualenv --python=/usr/bin/python2.6 virtualenv
virtualenv/bin/pip install git-review==1.21

Step 2 - Puoi estendere il percorso ai binari locali in due modi:

PATH=$PATH:~/virtualenv/bin/
PATH=~/virtualenv/bin/:$PATH

Step 3 - Ora, usa il seguente comando per impostare il lavoro con Gerrit.

git review -s
 or
~/virtualenv/bin/git-review -s

Step 4 - Con l'accesso root, git-review può essere installato utilizzando il seguente comando.

sudo apt-get install git-review

Step 5- Se non è presente apt-get dopo l'installazione di Python, utilizzare i seguenti comandi.

$ sudo easy_install pip
$ sudo pip install git-review==1.21

Step 6 - Esegui il seguente comando per lavorare con Gerrit.

git review -s

Mac OS X

In Mac, puoi installare git-review utilizzando i seguenti passaggi.

Step 1- Installa l'Homebrew da questo link.

Step 2 - Successivamente, installa git-review utilizzando il seguente comando.

brew install git-review

Gerrit è basato sul sistema di controllo della versione Git, che estrae il codice da un altro host, invia le modifiche al codice, invia il codice per la revisione, ecc. Il nome remoto predefinito di Git è origin e diciamo a git-review di usarlo nome "origine" utilizzando il seguente comando.

$ git config --global gitreview.remote origin

Git-review può essere utilizzato per inviare rami git a Gerrit per la revisione. È possibile configurare gitreview utilizzando il seguente comando nella directory del progetto.

$ git review -s

Git-review può essere usato come strumento a riga di comando per configurare Git clone, inviare i rami a Gerrit, recuperare i file esistenti, ecc. Git-review cerca il telecomando chiamato gerrit per lavorare con Gerrit per impostazione predefinita.

Se git-review trova il telecomando Gerrit, invierà il ramo a HEAD:refs/for/masternella posizione remota e se non c'è accesso remoto a Gerrit, git-review cerca il file .gitreview file nella radice del repository insieme alle informazioni remote di gerrit.

Git-review elabora internamente quanto segue:

  • Controllerà se il repository remoto funziona o meno per l'invio dei rami.

  • Se non è disponibile l'accesso remoto Gerrit, verrà richiesto il nome utente e tenterà di nuovo di accedere al repository.

  • Creerà un accesso remoto chiamato gerrit che punta a Gerrit.

  • Installerà l'hook commit-msg.

È possibile aggiornare il ramo principale utilizzando il comando seguente. Il comando git-pull recupera da un altro ramo locale o si integra con un altro repository.

git pull origin master
  • Il comando estrarrà le modifiche dal remoto di origine (URL del telecomando da cui recuperare), dal ramo principale e unirà le modifiche al ramo estratto in locale.

  • Il master di origine è una copia memorizzata nella cache dell'ultimo estratto dall'origine.

  • Git pull è una combinazione di git fetch (recupera nuovi commit dal repository remoto) e git merge (integra nuovi commit nel ramo locale).

  • Git pull unisce il ramo locale con il ramo remoto per impostazione predefinita.

È possibile creare un ramo sulla macchina locale utilizzando il seguente comando.

$ git checkout -b name_of_branch origin/master

Il comando precedente crea un nuovo ramo come mostrato nello screenshot seguente.

Qui abbiamo usato branch123come nuova filiale locale. Puoi mostrare il nuovo ramo dal "master" utilizzando il seguente comando.

$ git branch

Il comando precedente produce il risultato come mostrato nello screenshot seguente.

Git checkout naviga tra i rami, aggiorna i file nella directory di lavoro e informa Git di registrare i commit su quel ramo.

Quando si modifica il codice nel file system locale, è possibile verificare le modifiche all'interno della directory utilizzando il comando seguente.

$ git diff

Nella directory del progetto, modificheremo alcune modifiche nel file chiamato Example/Example.hooks.phped esegui il comando precedente. Otterremo il risultato come mostrato nello screenshot seguente.

È possibile controllare le modifiche apportate ai file o alla directory utilizzando il seguente comando.

$ git status

Il comando precedente permette di vedere quali modifiche sono state messe in scena, quali no e quali file non sono tracciati da Git.

Successivamente, puoi aggiungere le modifiche nella directory di lavoro e aggiornare il file nel commit successivo utilizzando il seguente comando.

$ git add Example/Example.hooks.php

Dopo aver aggiunto il file, esegui di nuovo il comando git status per rivedere le modifiche aggiunte all'area di staging come mostrato nello screenshot seguente.

Puoi vedere la differenza tra l'indice e il tuo ultimo commit e quali contenuti sono stati messi in scena, usando il seguente comando.

$ git diff --cached

È possibile inviare le modifiche alla directory remota dal repository locale utilizzando il comando seguente.

$ git commit

Quando esegui il comando precedente, ti verrà chiesto di aggiungere il messaggio di commit per le tue modifiche. Questo messaggio verrà visualizzato da altre persone quando invii il commit all'altro repository.

Aggiungi il messaggio di commit ed esegui nuovamente il comando come git commit , che visualizzerà il messaggio di commit come mostrato nello screenshot seguente.

È necessario rivedere le modifiche in Gerrit prima di unirle al master. È possibile sincronizzare le modifiche avvenute nel master. Usa il seguente comando all'interno del ramo su cui hai lavorato.

$ git pull --rebase origin master
  • Il comando precedente recupererà le modifiche o i commit dal ramo remoto e ridisegnerà i commit in cima al master.

  • Quando hai finito con le modifiche e ribasato i commit, puoi inviare il set di modifiche a Gerrit per la revisione.

  • Git pull --rebase viene spesso utilizzato quando le modifiche non meritano un ramo separato.

  • Git pull è una combinazione di git fetch e git merge; dove as git pull --rebase è una combinazione di git fetch e git rebase.

Innanzitutto, esegui il comando come git pull origin master come mostrato nello screenshot seguente.

Ora usa il comando come git rebase master per rebase i commit come mostrato nello screenshot seguente.

È possibile inviare le patch per la revisione utilizzando il git-reviewcomando. Il set di modifiche può essere inviato a Gerrit, eseguendo ilgit review -R comando come mostrato nello screenshot seguente.

Il -R opzione informa git-review di non completare il rebase prima di inviare le modifiche git a Gerrit.

Puoi inviare il codice ad un altro ramo piuttosto che al master, usando il seguente comando.

git review name_of_branch

È anche possibile inviare il codice a un altro telecomando, utilizzando il seguente comando.

git review -r name_of_remote

Le modifiche possono essere visualizzate nella dashboard di Gerrit facendo clic su questo collegamento .

Fare clic sul collegamento del nome dell'autore modificato e verrà visualizzato il seguente screenshot.

Fare clic sul collegamento diffusione per vedere i file modificati con altri dettagli come mostrato nella seguente schermata.

È possibile modificare il progetto tramite l'interfaccia web dopo aver effettuato l'accesso all'account Gerrit come mostrato nei passaggi seguenti.

Step 1- Vai alla dashboard di Gerrit facendo clic su questo collegamento . Otterrai il seguente screenshot.

Step 2 - Quindi fare clic su mediawiki/extensions/examplescollegamento specificato nella colonna Progetto .

Step 3- Fare clic sul collegamento Generale nella barra degli strumenti come mostrato nella seguente schermata.

Step 4- Quando apri il collegamento Generale , verrà visualizzato uno screenshot come il seguente.

Step 5- Fare clic sul pulsante Crea modifica e si aprirà una finestra popup con alcuni dettagli come mostrato nella schermata seguente.

Step 6- Immettere le informazioni e fare clic sul pulsante Crea .

Dopo aver creato la modifica, verranno visualizzate le informazioni come mostrato nella seguente schermata.

Step 7- Fare clic su Modifica e quindi su Aggiungi . Ora seleziona il file che desideri modificare. Qui abbiamo selezionato il fileExample/i18n/en.json.

Quando apri il file, mostrerà i dati json come specificato nello screenshot seguente.

Step 8- Fare clic su Salva e quindi sul pulsante Chiudi .

Step 9- Infine, fai clic sul pulsante Pubblica per pubblicare il file modificato

Step 10- È possibile modificare commettere messaggio cliccando sul Commit collegamento messaggio mostrato nello screenshot seguente.

Step 11- Premere e sulla tastiera e aggiungere alcune informazioni extra, se si desidera fare clic su Salva e quindi fare clic sul pulsante Chiudi .

La revisione del codice è una parte importante del flusso di lavoro in Gerrit. Il concetto di base è che il codice deve essere rivisto prima di essere unito.

Il flusso di lavoro del codice per MediaWiki può essere rivisto prima di unirlo e anche le estensioni possono essere riviste per personalizzare l'aspetto e il funzionamento di MediaWiki. C'è un caso speciale in cui puoi spingere i commit di internazionalizzazione e localizzazione .

È possibile inviare tutti i commit a un ramo remoto al termine dello sviluppo. Qualcuno recupererà le modifiche in locale e unirà le modifiche recuperate nel master locale creando un commit di unione. Puoi inviare queste modifiche arefs/for/master.

Proprietario del progetto significa che il progetto appartiene alla persona menzionata. I proprietari del progetto è un gruppo virtuale in cui non è possibile aggiungere membri o altri gruppi al suo interno. Il proprietario del progetto fornisce i diritti di accesso per consentire l'autorizzazione sul progetto a diversi gruppi.

È possibile visualizzare i diritti di accesso del progetto utilizzando i seguenti passaggi.

Step 1- Apri la dashboard di Gerrit facendo clic su questo collegamento .

Step 2- Fare clic su Progetti → opzione Elenco . Cerca il progetto nell'elenco dei tuoi progetti e fai clic su di esso come mostrato nello screenshot seguente.

Step 3- Quando apri il tuo progetto, fai clic sull'opzione Accesso come mostrato nello screenshot seguente.

Step 4- Fare clic sull'opzione di modifica . È possibile modificare i diritti di accesso facendo clic sul menu a discesa. Fare clic sul pulsante Salva modifiche come mostrato nella seguente schermata.

Chiunque può rivedere il codice e commentarlo in Gerrit. Considera i seguenti passaggi:

Step 1 - Accedi a Gerrit per aprire la dashboard di Gerrit come specificato nel capitolo precedente.

Step 2 - Ora, fai clic su qualsiasi argomento che contenga il progetto Gerrit, il ramo, la data di aggiornamento, ecc. Come mostrato nello screenshot seguente.

Step 3- Successivamente, verrà visualizzata una schermata. Fare clic sull'opzione Conferma messaggio come mostrato nello screenshot seguente.

I campi importanti della serie di modifiche sono come Revisori, Aggiungi revisore, Fianco a fianco disattivato, ecc. Il confronto dei set di patch include la selezione dell'elenco della cronologia delle versioni precedenti, l'espansione dei dettagli del set di patch più recenti, ecc. include il pulsante di abbandono delle modifiche, il pulsante di invio della patch, ecc. che non sono presenti nella versione corrente di Gerrit.