Sviluppo/gerrit/CaricamentoPatch

From The Document Foundation Wiki
Jump to: navigation, search
This page is a translated version of the page Development/gerrit/SubmitPatch and the translation is 100% complete.

Other languages:
English • ‎italiano • ‎日本語 • ‎한국어 • ‎português do Brasil

Inviare una patch per la revisione su gerrit

Caricare le patch per la revisione

Create ed inviate le vostre modifiche su gerrit affinché vengano revisionate (la documentazione ufficiale di gerrit si trova qui):

git checkout -b <un_nome_a_vostra_scelta_per_la_branch_locale>
# Apportate le modifiche al codice ed assicuratevi che venga compilato
git add file [file ...] # tutti i file nuovi _e_ quelli modificati
git commit
./logerrit submit master

Nota: affinché il comando `logerrit` funzioni, assicuratevi di esservi iscritti a gerrit e predisposto tutte le impostazioni. Qui potete trovare le istruzioni per farlo.

Nota: i passaggi git add + git commit possono essere eseguiti usando 'git gui', ricordatevi che la riga dell'oggetto del commit non dovrebbe essere più lunga di 72 caratteri e le righe del messaggio di commit, se presenti, non dovrebbero superare gli 80 caratteri.

Nota: per gli invii al ramo master, è utile che le modifiche si basino su di una versione recente del master, in modo che le compilazioni CI su jenkins possano trarre il maggior beneficio possibile dall'uso di ccache.

Nota: LibreOffice utilizza clang-format per controllare la conformità delle patch alle regole prestabilite. Viene usata una specifica versione di clang-format (per evitare delle discrepanze che sussistono tra le sue diverse versioni, anche tra rilasci minori). Se sul vostro sistema clang-format non è preinstallato, al momento dell'esecuzione di git commit, verrà generato un avvertimento riportante le istruzioni per installare gli eseguibili richiesti. Se avete già una versione preinstallata potreste non visualizzare alcun avvertimento (ma potreste ottenere risultati incongruenti nel caso in cui i bot di compilazione falliscano invitandovi a modificare la formattazione in modo diverso), oppure la versione preinstallata potrebbe non funzionare (ad es.: lamentandosi per le opzioni passate dalla riga di comando). Potete verificare la versione usata da LibreOffice su https://dev-www.libreoffice.org/bin/.

Solamente l'ultima riga è speciale ed effettuerà il push di tutte le patch presenti nella branch locale avente il nome indicato, inviandole alla coda di revisione della branch master (Se volete inviare una patch alla branch di un rilascio, o ad altre branch, modificate i comandi di conseguenza). In qualità di contributori occasionali la vostra patch dovrà indicare lo stesso indirizzo email del vostro account su gerrit altrimenti non vi sarà permesso di effettuare il push.

Se il push va a buon fine, git vi indicherà l'indirizzo dove si trova il vostro commit in attesa di revisione. L'url sarà simile a https://gerrit.libreoffice.org/#/c/229/.

È bene conservare la branch locale fino a quando la patch è in revisione, ciò vi consentirà di effettuare facilmente il push di una nuova versione della patch. Nel frattempo potete eseguire

git checkout master

per tornare alla branch master... e potete iniziare a lavorare ad un'altra patch usando nuovamente la procedura sopra descritta (creare una branch locale, scrivere il codice, effettuare il commit, fare il push su gerrit).

Aggiungetevi all'elenco dei contributori

Se è la prima volta che contribuite una patch al progetto LibreOffice, aggiungetevi all' elenco degli sviluppatori e contributori (seguite le istruzioni riportate in quella pagina) ed indicate la licenza per i vostri contributi.

Siete pregati di inviare la dichiarazione contestualmente al vostro primo caricamento di codice su gerrit (e non prima) ed assicuratevi di aver ottenuto dai vostri genitori il permesso per farlo!

Maggiori informazioni sul caricamento delle patch

In alternativa a quanto sopra, potete prendere in considerazione l'utilizzo di "git review", come spiegato nella pagina Development/GitReview.

Spiegazione dettagliata di alcuni elementi relativi al caricamento delle patch

Caricare una nuova versione

Se durante la revisione di una vostra patch dovete caricarne una nuova versione, eseguite:

git checkout <branch_locale_associata_alla_vostra_patch>
<apportate le vostre modifiche>
git add ...
git commit --amend  # questo modifica l'ultimo commit alla branch invece di crearne uno nuovo
./logerrit submit master

Notate che gerrit rileva che si tratta di una nuova versione di una modifica esistente (tramite il Change-Id).

Im-jabber.svg

Note:
Se per sbaglio vi dimenticate di usare --amend e vi ritrovate con 2 commit, potete unirli con git rebase -i; per le istruzioni vedete Git per gli sviluppatori di LibreOffice.

Usare git review per rettificare delle modifiche e caricare nuove versioni della patch

Rettificare manualmente le modifiche nel modo sopra descritto può rapidamente generare confusione e tenere traccia della branch_locale_associata_alla_vostra_patch può indurre in errore (in ogni caso, associata come?). Se avete caricato su gerrit molte modifiche, tenerle tutte nella branch master e rettificarle indipendentemente una dall'altra è impossibile. Dovrete reimpostare HEAD^ dopo ogni caricamento e scaricare/modificare/correggere/caricare/reimpostare per ogni nuovo insieme di patch, oppure farlo in branch separate, in questo può tornare utile git review.

Per sapere come fare, leggete Development/GitReview#Amending_a_gerrit_change.

Caricare delle patch come private o in lavorazione

Se usate il comando ./logerrit submit-private master al posto di ./logerrit submit master, creerete una modifica private.

Questa modifica sarà visibile solamente a voi ed ai revisori che aggiungerete usando il pulsante 'add reviewer' presente in gerrit.

Se non avete la necessità di nascondere le vostre modifiche al pubblico, potete usare il comando ./logerrit submit-wip master per creare una modifica in lavorazione.

Se non usare logerrit, effettuate il push su riferimento/alla/branch%private o riferimento/alla/branch%wip.

Potete anche attivare lo stato "private" e "WIP" dall'interfaccia utente di gerrit.

Caricare patch da revisionare relative ai moduli dictionaries, helpcontent2, translations

Vedete la pagina dedicata ai Submodule.