Wprowadź zmiany w kodzie

Na tej stronie opisano pełny proces przesyłania zmiany kodu na Androida Open Source Project (AOSP) – między innymi informacje o tym, jak poprosić o sprawdzenie i śledzenie. zmiany.

AOSP wykorzystuje Gerrit – internetowy system weryfikacji kodu w projektach, w których Git.

Podpisywanie umów licencyjnych twórców

Zanim prześlesz jakiekolwiek zmiany w kodzie AOSP, musisz przeczytać te artykuły, Umowy licencyjne i nagłówki współtwórców i podpiszą jedną z następujących umów:

.

Utwórz gałąź

W przypadku każdej zmiany w kodzie, którą chcesz wprowadzić, wykonaj te czynności:

  1. Uruchom nową gałąź w odpowiednim repozytorium Git. Gałąź nie jest kopią oryginalnych plików; jest wskaźnikiem do konkretnego zatwierdzenia, co sprawia, tworzenia lokalnych gałęzi i przełączenia się między nimi w prosty sposób. Według za pomocą gałęzi, możecie wykrywać między sobą zmiany. Uruchom to polecenie, aby: uruchom gałąź:

    repo start BRANCH_NAME
    

    Możesz uruchomić kilka niezależnych gałęzi jednocześnie w tym samym z repozytorium. Oddział BRANCH_NAME jest lokalny w Twoim i nie występuje w Gerrit ani w ostatnim drzewie źródłowym. Oddziały są też powiązane z projektem, w którym pracujesz, więc jeśli chcesz zmienić plików w różnych projektach w ramach tej samej zmiany, potrzebujesz gałęzi w każdym projekcie, w którym zmieniasz pliki.

  2. (opcjonalnie) Sprawdź, czy gałąź została utworzona:

    repo status .
    

    Zobaczysz nowo utworzoną gałąź. Na przykład:

    project frameworks/native/                      branch mynewbranch
    

Wprowadź i przetestuj zmianę

Aby wprowadzić i przetestować zmianę, wykonaj następujące czynności:

  1. Aby mieć pewność, że pracujesz z najnowszą bazą kodu, zsynchronizuj całą bazę kodu:

    repo sync
    

    Jeśli podczas synchronizacji wystąpią jakiekolwiek konflikty, zapoznaj się z krokami 2–4 Rozwiązywanie konfliktów synchronizacji

  2. Znajdź kod, który chcesz zmienić. Aby znaleźć kod, użyj Wyszukiwanie kodu na Androidzie. Możesz użyć Androida Code Search, aby wyświetlić kod źródłowy AOSP w postaci, w jakiej jest . Więcej informacji: Wprowadzenie do wyszukiwania kodu. Aby wyświetlić cały kod z gałęzi main w wyszukiwarce kodu na Androidzie, nawiguj do https://cs.android.com/android/platform/superproject/main

  3. Zmień lub dodaj pliki źródłowe. Dla wszystkich wprowadzonych zmian:

  4. Utwórz Androida

  5. Testowanie kompilacji.

Przygotuj i zatwierdź zmianę

commit to podstawowa jednostka kontroli wersji w Git i składa się z pliku podsumowanie struktury katalogów i zawartości plików dla całego projektu. Aby zatwierdzić zmianę, wykonaj te czynności:

  1. Domyślnie Git rejestruje zmiany, ale nie śledzi wprowadzanych przez Ciebie zmian. Do poinstruuj Gita, aby śledził zmiany, musisz je oznaczyć lub zakończyć do zatwierdzenia. Aby przeprowadzić zmianę, uruchom to polecenie:

    git add -A
    

    To polecenie śledzi zmiany wprowadzone w plikach.

  2. Pobierz pliki w obszarze przejściowym i zatwierdź je lub zapisz w lokalnym baza danych:

    git commit -s
    

    Domyślnie otworzy się edytor tekstu i pojawi się prośba o podanie zatwierdzenia.

  3. Podaj komunikat zatwierdzenia w tym formacie:

    • Wiersz 1: nagłówek. Podaj jednowierszowe podsumowanie zmiany (50 znaków). maksimum). Rozważ użycie prefiksów, aby opisać zmieniony obszar, a następnie przez opis zmian wprowadzonych w tym zatwierdzeniu, na przykład: przykład zawierający zmianę w interfejsie użytkownika:

      ui: Removes deprecated widget
      
    • Wiersz 2: pusty wiersz. Przejdź do nagłówka pustym wierszem.

    • Wiersz 3: treść. Podaj długi opis, który nie może przekraczać 72 znaków maksimum. Opisz problem, który rozwiązuje ta zmiana, i w jaki sposób. Chociaż ciało jest jest opcjonalny, ale ułatwi innym osobom, które chcą się dowiedzieć o tej zmianie. Pamiętaj, aby zawrzeć krótkie założenia i ogólne informacje. co może być ważne, gdy inny współtwórca pracuje nad tą funkcją.

    Aby przeczytać bloga z dobrymi opisami zatwierdzenia (z przykładami), zobacz Jak napisać wiadomość dla zatwierdzenia Git.

  4. Zapisz zatwierdzenie.

Niepowtarzalny identyfikator zmiany oraz Twoje imię i nazwisko oraz adres e-mail, które zostały podane w czasie repo init, są automatycznie dodawane do komunikatu zatwierdzenia.

Przesyłanie zmiany do sprawdzenia

Po zatwierdzeniu zmiany w osobistej historii Git prześlij ją do narzędzia Gerrit:

  1. Uruchom to polecenie, aby przesłać wszystkie zatwierdzenia we wszystkich projekty:

    repo upload
    

    W przesyłanym pliku są uwzględniane wszystkie zmiany we wszystkich projektach.

    Pojawi się prośba o uruchomienie skryptów hook.

  2. Naciśnij A, a następnie Enter.

    Pojawi się prośba o zatwierdzenie przesyłania:

    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. Naciśnij Y, a następnie Enter, by zatwierdzić przesyłanie.

Powinna wyświetlić się wiadomość podobna do tej: remote: SUCCESS.

Poproś o sprawdzenie

Po zakończeniu przesyłania usługa Repo wyświetli link do zmian w Gerrit. Kliknij link, aby wyświetlić zmiany na serwerze weryfikacji, dodać komentarze lub poproś o konkretnych weryfikatorów. Wszystkie zmiany w kodzie muszą zostać sprawdzić przez odpowiednich właścicieli kodu. Aby poprosić o sprawdzenie:

  1. W Gerrit kliknij ZASUGERUJ WŁAŚCICIELE:

    Link do sugestii właścicieli w narzędziu Gerrit

    Rysunek 1. Link do sugestii właścicieli w narzędziu Gerrit.

    Pojawi się okno dialogowe recenzenta. To okno zawiera listę właścicieli kodu, którzy może sprawdzić wprowadzone przez Ciebie zmiany.

  2. Kliknij właściciela kodu, aby dodać go do opinii.

    Aktywowano przycisk WYŚLIJ.

  3. (Opcjonalnie) Wpisz adres e-mail osoby, której chcesz poprosić o sprawdzenie .

  4. (Opcjonalnie) Kliknij +1 obok opcji Automatyczne przesyłanie, aby automatycznie przesłać zmianę. gdy otrzymasz zatwierdzenia. Jeśli nie klikniesz tego przycisku, pracownik Google musi przesłać zmianę w Twoim imieniu.

  5. Kliknij WYŚLIJ, aby wysłać zmianę do sprawdzenia.

Właściciele kodu sprawdzają zmiany w kodzie i przekazują opinię, aby zatwierdzić lub zatwierdzić zmiany.

Określ stan zmiany

Aby określić stan plików objętych zmianą, sprawdź, obok plików, których dotyczy zmiana:

  • (znacznik wyboru ikona): Zatwierdzono przez właściciela kodu
  • (krzyżyk): Niezatwierdzone przez właściciela kodu
  • (zegar ikona): oczekuje na zatwierdzenie przez właściciela kodu

Na ilustracji poniżej przedstawiono ikony stanu zastosowane do plików w wyniku zmiany:

Przykładowe pliki z ikonami oznaczającymi zgodę właściciela kodu

Rysunek 2. Przykładowe pliki z ikonami oznaczającymi zgodę właściciela kodu.

Odpowiedz na opinię i prześlij zmianę dotyczącą urządzenia na wymianę

Jeśli weryfikator poprosi o wprowadzenie zmian w aktualizacji, możesz zmienić zatwierdzenie w Git, co spowoduje utworzenie nowego zestawu poprawek .

Aby rozwiązać problem i wprowadzić zmiany:

  1. Wykonaj kroki 2–4 podane w artykule Wprowadzanie i testowanie zmiany.

  2. Aby poprawić zmianę, uruchom następujące polecenia:

    git add -A
    git commit --amend
    
  3. Prześlij zmianę.

Gdy prześlesz zmodyfikowaną zmianę, zastąpi ona oryginał zarówno w Gerrit, i w lokalnej historii Git.

Rozwiązywanie konfliktów synchronizacji

Jeśli zostaną przesłane inne zmiany do drzewa źródłowego, które są w konflikcie z otrzymasz wiadomość o tym, że masz konflikty. Aby rozwiązać konflikty:

  1. Upewnij się, że używasz najnowszego kodu:

    repo sync .
    

    Polecenie repo sync pobiera aktualizacje z serwera źródłowego, a następnie próbuje automatycznie przenieść urządzenie HEAD na nowego pilota HEAD.

  2. Jeśli automatyczna zmiana się nie uda, wykonaj ręczną korektę:

    repo rebase .
    
  3. Rozwiązywanie konfliktów scalania. Jeśli nie masz preferowanej metody rozwiązywania problemów scalania konfliktów, użyj git mergetool aby ręcznie rozwiązywać konflikty między plikami.

  4. Gdy rozwiążesz konflikt plików, uruchom to polecenie, aby: zastosuj nowe zatwierdzenia:

    git rebase --continue
    

Prześlij zmianę

Gdy przesłane treści przejdą proces weryfikacji, weryfikator Google musi przesłać kod za Ciebie. Inny powód użytkownicy mogą uruchomić repo sync, aby pobrać aktualizację do odpowiednich klientów.

Po połączeniu zgłoszeń możesz otworzyć stronę Ciągła integracja z Androidem aby monitorować, kiedy zgłoszenia są zintegrowane z drzewem.