Invia modifiche al codice

In questa pagina viene descritta la procedura completa per l'invio di una modifica del codice ad Android Open Source Project (AOSP), che include informazioni su come richiedere una revisione e monitorare le modifiche apportate.

AOSP si basa su Gerrit, un sistema di revisione del codice basato sul web per i progetti che utilizzano o Git.

Firmare i contratti di licenza per i collaboratori

Prima di contribuire con qualsiasi modifica al codice per AOSP, devi leggere Contratti di licenza di Collaboratori e intestazioni e firmare uno dei seguenti contratti:

di Gemini Advanced.

Avvia un ramo

Per ogni modifica che intendi apportare al codice, segui questi passaggi:

  1. Avviare un nuovo ramo all'interno del repository Git pertinente. Un ramo non è una copia dei file originali; un puntatore a un commit specifico, creando rami locali e passando da uno all'altro in un'operazione leggera. Di usando i rami, potete identificare le modifiche l'una dall'altra. Esegui questo comando per avvia un ramo:

    repo start BRANCH_NAME
    

    Puoi avviare diversi rami indipendenti contemporaneamente nella stessa repository Git. La filiale BRANCH_NAME è locale e non è incluso né in Gerrit né nell'albero di origine finale. Anche i rami sono specifici del progetto in cui ti trovi, quindi se devi in progetti diversi nell'ambito della stessa modifica, è necessario un ramo in ogni progetto in cui modifichi i file.

  2. (Facoltativo) Verifica che il ramo sia stato creato:

    repo status .
    

    Dovresti vedere il ramo appena creato. Ad esempio:

    project frameworks/native/                      branch mynewbranch
    

Apportare e testare la modifica

Per apportare e testare la modifica:

  1. Per assicurarti di lavorare con il codebase più recente, esegui una sincronizzazione l'intero codebase:

    repo sync
    

    In caso di conflitti durante la sincronizzazione, fai riferimento ai passaggi 2-4 della Risolvi i conflitti di sincronizzazione.

  2. Cerca il codice da modificare. Per trovare il codice, valuta l'utilizzo Ricerca Codice di Android. Puoi usare Android Ricerca Codice per visualizzare il codice sorgente AOSP così come è strutturato quando in realtà utilizzi li annotino. Per ulteriori informazioni, vedi Guida introduttiva a Ricerca Codice. Per visualizzare tutto il codice nella filiale main all'interno della ricerca di codici Android, vai a https://cs.android.com/android/platform/superproject/main

  3. Modifica o aggiungi file di origine. Per le modifiche apportate:

  4. Crea Android.

  5. Testa la build.

Staging ed esegui il commit della modifica

Un commit è l'unità di base del controllo della revisione in Git ed è costituito da un della struttura della directory e dei contenuti del file per l'intero progetto. Per eseguire il commit della modifica, segui questi passaggi:

  1. Per impostazione predefinita, Git registra le modifiche che apporti, ma non tiene traccia. A indicare a Git di monitorare le modifiche, devi contrassegnare o organizzare le modifiche l'inclusione in un commit. Esegui questo comando per posizionare temporaneamente la modifica:

    git add -A
    

    Questo comando monitora le modifiche apportate ai file.

  2. Inserisci i file nell'area di gestione temporanea ed esegui il commit o archiviali nella tua regione database:

    git commit -s
    

    Per impostazione predefinita, si apre un editor di testo e ti viene chiesto di fornire un di commit.

  3. Fornisci un messaggio di commit nel seguente formato:

    • Riga 1: titolo. Fornisci un riepilogo di una riga della modifica (50 caratteri) massimo). Prova a utilizzare prefissi per descrivere l'area modificata e seguita da una descrizione della modifica apportata a questo commit, ad esempio: esempio contenente una modifica all'interfaccia utente:

      ui: Removes deprecated widget
      
    • Riga 2: riga vuota. Segui il titolo con una riga vuota.

    • Riga 3: corpo. Fornisci una descrizione lunga di 72 caratteri massimo. Descrivi il problema risolto e in che modo. Sebbene il corpo sia facoltativo, è utile per gli altri utenti che devono fare riferimento al cambiamento. Assicurati di includere una breve nota su eventuali ipotesi o informazioni di base che potrebbero essere importanti quando un altro collaboratore lavora a questa funzionalità.

    Per leggere un blog dedicato a descrizioni di commit efficaci (con esempi), consulta Come scrivere un messaggio di commit Git.

  4. Salva il commit.

Un ID modifica univoco, nonché il tuo nome e indirizzo email, che sono stati forniti durante repo init, vengono aggiunti automaticamente al messaggio di commit.

Carica la modifica per la revisione

Dopo aver eseguito il commit della modifica nella tua cronologia Git personale, caricala su Gerrit:

  1. Esegui questo comando per caricare tutti i commit progetti:

    repo upload
    

    Tutte le modifiche in tutti i progetti sono incluse nel caricamento.

    Ti viene chiesto di eseguire script hook.

  2. Premi A, quindi Invio.

    Ti viene chiesto di approvare il caricamento:

    Upload project frameworks/native/ to remote branch main:
    branch BRANCH_NAME ( 1 commit, Wed Aug 7 09:32:33 2019 -0700):
           ff46b36d android codelab change
    to https://android-review.googlesource.com/ (y/N)?
    
  3. Premi Y, quindi Invio per approvare il caricamento.

Dovresti ricevere un messaggio simile a remote: SUCCESS.

Richiedi una revisione

Al termine del caricamento, il repository fornisce un link alle modifiche apportate in Gerrit. Fai clic sul link per visualizzare le modifiche sul server di revisione, aggiungere commenti o richiedere revisori specifici per la tua modifica. Tutte le modifiche al codice devono essere da parte dei proprietari del codice appropriati. Per richiedere una revisione:

  1. In Gerrit, fai clic su SUGGERI AI PROPRIETARI:

    Suggerisci link proprietari in Gerrit

    Figura 1. Suggerisci link ai proprietari in Gerrit.

    Viene visualizzata la finestra di dialogo del revisore. Questa finestra di dialogo contiene un elenco di proprietari di codice che puoi rivedere la tua modifica.

  2. Fai clic su un proprietario del codice per aggiungerlo alla tua recensione.

    Il pulsante INVIA è attivato.

  3. (Facoltativo) Digita l'indirizzo email di chiunque desideri esaminare il tuo modifica.

  4. (Facoltativo) Fai clic su +1 accanto a Invio automatico per inviare automaticamente la modifica dopo aver ricevuto le approvazioni. Se non fai clic su questo pulsante, un dipendente Google deve inviare la modifica per te.

  5. Fai clic su INVIA per inviare la modifica per la revisione.

I proprietari del codice esaminano le modifiche apportate al codice e ti forniscono un feedback per risolvere o approvare le modifiche.

Determinare lo stato del cambiamento

Per determinare lo stato dei file nella modifica, controlla la seguenti icone accanto ai file oggetto della modifica:

  • (segno di spunta) icona): Approvato dal proprietario del codice
  • (icona a forma di croce): Non approvato dal proprietario del codice
  • (orologio icona): in attesa di approvazione da parte del proprietario del codice

La figura seguente mostra le icone di stato applicate ai file oggetto di una modifica:

Esempio di file con icone che mostrano l'approvazione del proprietario del codice

Figura 2. Esempio di file con icone che mostrano l'approvazione del proprietario del codice.

Risolvi il feedback e carica una modifica sostitutiva

Se un revisore richiede una modifica dell'aggiornamento, modificare il commit all'interno di Git, il che genera un nuovo set di patch modifica.

Per risolvere il feedback e modificare la modifica:

  1. Segui i passaggi 2-4 descritti in Apportare e testare una modifica.

  2. Esegui questi comandi per modificare la modifica:

    git add -A
    git commit --amend
    
  3. Carica la modifica.

Quando carichi la modifica modificata, sostituisce l'originale su Gerrit e nella tua cronologia Git locale.

Risolvi i conflitti di sincronizzazione

Se alla struttura di origine vengono inviate altre modifiche in conflitto con tuoi, ricevi un messaggio che indica la presenza di conflitti. Per risolvere i conflitti:

  1. Assicurati di utilizzare il codice più recente:

    repo sync .
    

    Il comando repo sync recupera gli aggiornamenti dal server di origine, quindi tenta di ricollegare automaticamente il tuo HEAD sul nuovo HEAD remoto.

  2. Se il rebase automatico non va a buon fine, esegui un rebase manuale:

    repo rebase .
    
  3. Risolvi i conflitti di unione. Se non hai un metodo preferito per risolvere il problema conflitti di unione, puoi usa git mergetool per correggere manualmente i conflitti tra i file.

  4. Una volta corretti i file in conflitto, esegui questo comando e applica i nuovi commit:

    git rebase --continue
    

Invia modifica

Una volta che i contenuti inviati superano la procedura di revisione e verifica, che dovrà essere inviato da un revisore di Google. Altro gli utenti possono eseguire repo sync per eseguire il pull dell'aggiornamento nei rispettivi clienti.

Dopo aver unito i contenuti inviati, puoi visitare il Integrazione continua di Android per monitorare quando i contenuti inviati sono integrati nella struttura ad albero.