Przepływ pracy kontroli źródła

Praca z kodem na Androida wymaga platformy Git (oprogramowania typu open source system kontroli wersji) i Repo (repozytorium utworzone przez Google). (narzędzie do zarządzania działające na Git). Zobacz narzędzia do kontroli źródeł. gdzie można znaleźć wyjaśnienie zależności między Repozytorium i Git oraz linki do dodatkowej dokumentacji każdego narzędzia.

Płynięcie

Programowanie aplikacji na Androida obejmuje ten podstawowy przepływ pracy:

  1. Utwórz nową gałąź tematów za pomocą: repo start.
  2. Edytuj pliki.
  3. Etap zmienia się za pomocą funkcji git add.
  4. Zatwierdź zmiany za pomocą metody git commit.
  5. Prześlij zmiany na serwer opinii za pomocą narzędzia repo upload.

Lista zadań

Praca z Git i Repo w repozytoriach kodu Androida obejmuje wykonując te typowe zadania.

Polecenie Opis
repo init Inicjuje nowego klienta.
repo sync Synchronizuje klienta z repozytoriami.
repo start Uruchamia nową gałąź.
repo status Pokazuje stan bieżącej gałęzi.
repo upload Przesyła zmiany na serwer opinii.
git add Przygotowuje pliki na etapie przejściowym.
git commit Zatwierdź pliki etapowe.
git branch Pokazuje bieżące gałęzie.
git branch [branch] Tworzy nową gałąź tematu.
git checkout [branch] Przełącza HEAD do określonej gałęzi.
git merge [branch] Scala [branch] z bieżącą gałęzią.
git diff Pokazuje różnice między nieetapowymi zmianami.
git diff --cached Pokazuje różnice między zmianami etapowymi.
git log Pokazuje historię bieżącej gałęzi.
git log m/[codeline].. Pokazuje zatwierdzenia, które nie zostały przekazane.

Informacje o używaniu Repo do pobierania źródła znajdziesz w tych artykułach: Pobieranie źródeł oraz Dokumentacja polecenia Repo.

Synchronizowanie klientów

Aby zsynchronizować pliki dla wszystkich dostępnych projektów:

repo sync

Aby zsynchronizować pliki z wybranych projektów:

repo sync PROJECT0 PROJECT1 ... PROJECTN

Tworzenie gałęzi tematów

Tworząc dział tematyczny w lokalnym środowisku pracy, , na przykład gdy rozpoczniesz pracę nad błędem lub nową funkcją. Gałąź tematów nie jest kopią oryginalnych plików; to wskaźnik do konkretnego zatwierdzenia, które umożliwia tworzenie gałęzi lokalnych i przełączanie się nie wymaga dużych nakładów pracy. Rozgałęzienia pozwalają wyodrębnić jeden aspekt Twoją pracę od innych. Ciekawy artykuł o używaniu tematu gałęzie, patrz Rozdzielanie działów tematycznych.

Aby uruchomić gałąź tematów przy użyciu repozytorium, przejdź do projektu i uruchom polecenie:

repo start BRANCH_NAME .

Okres końcowy ( .) oznacza bieżący projekt, który jest aktualnie tworzony. katalogu.

Aby sprawdzić, czy nowa gałąź została utworzona:

repo status .

Używanie gałęzi tematów

Aby przypisać gałąź do konkretnego projektu:

repo start BRANCH_NAME PROJECT_NAME

Listę wszystkich projektów znajdziesz tutaj android.googlesource.com Jeśli jesteś już w katalogu projektu, wpisz kropkę reprezentują bieżący projekt.

Aby przełączyć się na inną gałąź w lokalnym środowisku pracy:

git checkout BRANCH_NAME

Aby wyświetlić listę istniejących gałęzi:

git branch

lub

repo branches

Oba polecenia zwracają listę istniejących gałęzi o nazwie gałąź poprzedzona gwiazdką (*).

Pliki przejściowe

Domyślnie Git wykrywa zmiany, ale nie śledzi zmian wprowadzanych w projekcie. Aby poinformować Git o zachowaniu zmian, musisz je oznaczyć lub przygotować zmiany do uwzględnienia w zatwierdzeniu.

Aby etapować zmiany:

git add

To polecenie przyjmuje argumenty odnoszące się do plików lub katalogów w projekcie katalogu. Pomimo nazwy git add nie tylko dodaje pliki do repozytorium Git; Można go również wykorzystać do testowania zmian w plikach usunięcia.

Wyświetlanie stanu klienta

Aby wyświetlić listę stanu plików:

repo status

Aby wyświetlić niezatwierdzone zmiany (lokalne zmiany, które nie są oznaczone jako wymagające zatwierdzenia):

repo diff

Aby wyświetlić zatwierdzone zmiany (zmiany w lokalizacjach, które są oznaczone dla zatwierdzenia), sprawdź, czy jesteś w katalogu projektu, a następnie uruchom polecenie git diff z argumentem cached:

cd ~/WORKING_DIRECTORY/PROJECT
git diff --cached

Wprowadzanie zmian

commit to podstawowa jednostka kontroli wersji w Git i składa się z: zrzut struktury katalogu i zawartości plików dla całego projektu. Aby utworzyć zatwierdzenie w Git, użyj tego polecenia:

git commit

Gdy pojawi się komunikat o zatwierdzeniu, podaj krótki (ale przydatny) komunikat: zmian przesłanych do AOSP. Jeśli nie dodasz komunikatu zatwierdzenia, zatwierdzenie się nie powiedzie.

Przesyłanie zmian do Gerrit

Zaktualizuj do najnowszej wersji, a następnie prześlij zmianę:

repo sync
repo upload

Te polecenia zwracają listę zatwierdzonych zmian i zachęcają do wybierz gałęzie, które chcesz przesłać na serwer opinii. Jeśli jest tylko jeden , pojawi się prosty prompt y/n.

Rozwiązywanie konfliktów synchronizacji

Jeśli polecenie repo sync zwraca konflikty synchronizacji:

  1. Wyświetl pliki, które nie zostały scalone (kod stanu = U).
  2. W razie potrzeby zmodyfikuj regiony konfliktu.
  3. Przejdź do odpowiedniego katalogu projektu. Dodaj i zatwierdź problem i ponownie wprowadzić zmiany:
    git add .
    git commit
    git rebase --continue
    
  4. Po zakończeniu przywracania ponownie rozpocznij całą synchronizację:
    repo sync PROJECT0 PROJECT1 ... PROJECTN
    

Czyszczenie klientów

Po scaleniu zmian w Gerrit zaktualizuj lokalny katalog roboczy, a następnie użyj repo prune, aby bezpiecznie usunąć nieaktualne gałęzie tematów:

repo sync
repo prune

Usuwam klientów

Wszystkie informacje o stanie są przechowywane w kliencie, więc wystarczy usuń katalog z systemu plików:

rm -rf WORKING_DIRECTORY

Usunięcie klienta spowoduje trwałe usunięcie wszystkich zmian, które nie zostały wprowadzone został przesłany do sprawdzenia.