2010-12-19 8 views
6

Potrzebuję tylko kodu określonej wersji Chromium, takiego jak r69297, który jest najnowszą wersją przeglądarki Chrome. Używam git więc postępuję zgodnie z instrukcją tutaj: http://code.google.com/p/chromium/wiki/UsingGit Jednak po zsynchronizowaniu całego kodu i przejrzeniu dziennika zatwierdzenia, nie mogę znaleźć tej wersji! , a następnie myślałem o tagu i szukane tutaj. How to use git to checkout a specified version of Webkit? tutaj znalazłem, ale po wykonaniu wszystkich kroków i czekać dość długo, nadal nic nie dostaję. czy repozytorium git chromium zachowuje informacje o znacznikach? jak mogę je zdobyć? thxjak uzyskać kod określonej wersji Chromium z git?

+0

Co masz na myśli, "Nadal nie otrzymuję nic"? Czy możesz pokazać wynik uruchomienia tych poleceń? –

+0

@Jean Hominal: nic wyjścia. w drzewie git nie istnieje rewizja 69297, tylko r69298. – ayanamist

+0

spróbuj użyć gitk, aby zobaczyć historię repozytorium Git - możesz odwołać się do dokładnego zatwierdzenia przez jego haszowanie –

Odpowiedz

12

Kiedy pytano, Chrom używane SVN. W dzisiejszych czasach git jest podstawowym systemem VC, więc użyję tagów/skrótów git zamiast r #### rewizji.

W tej odpowiedzi zakładam, że już skonfigurowałeś warunki wstępne do budowy Chromium (w tym początkową kasę). Jeśli nie masz tego, kontynuuj samouczek pod numerem http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html, zanim przejdziesz dalej. Możesz pominąć krok gclient sync, ponieważ i tak zastąpisz te zależności, wykonując poniższe czynności.

Scenariusz: chcę zastosować poprawkę do najnowszej stabilnej wersji Chromium. Aby dowiedzieć się o najnowszej stabilnej wersji, odwiedź stronę https://omahaproxy.appspot.com/. Według tej strony najnowsza wersja to 38.0.2125.104. Jeśli chcesz zobaczyć poprzednie/następne wydania, odwiedź stronę http://blink.lc/chromium/refs/, aby uzyskać przegląd znaczników. Ta lista tagów zawiera niewydane wersje, np. 38.0.2125.106 (ostatnia liczba kompilacji zwiększa się, gdy nowe poprawki są nakładane na linię bazową, która jest identyfikatorem o trzeci numer).

# Inside chromium/src/ 
git fetch origin 38.0.2125.106 

# Create a new branch "my_stable_branch" that is based on the just-fetched HEAD. 
git checkout -b my_stable_branch FETCH_HEAD 

# ... apply the patch ... 
# (e.g. by editing the files) 
# (e.g. by using git cherry-pick [commit id]) 
# (e.g. by using git checkout [commit id] [file path]) 

# Commit changes (assuming that you want to keep track of your changes) 
git commit -va 

# Now synchronize the dependencies to the current branch 
gclient sync --with_branch_heads # --jobs 16 if you wish to use parallelism 

# Now compile the release build. The output will be stored in src/out/Release. 
ninja -C out/Release chrome chrome_sandbox 
1

Gałęzie

Jeśli nie można znaleźć szczególności zobowiązać się, by sprawdzić, czy to w oddziale innego niż „master”. Kiedy po raz pierwszy klonujesz repozytorium, dostajesz tylko gałąź "master". Można uruchomić następujące do kasy oddziału dostępny na zdalnym repozytorium Chromium:

git branch new-local-branch origin/some-remote-branch 
git checkout new-local-branch 

Oczywiście używać poprawnej nazwy do zdalnej gałęzi i nazwać swój lokalny oddział coś logicznego.

Tagi

Kiedy można sklonować repo Git, należy uzyskać wszystkie jej znaczniki domyślnie. Możesz uzyskać listę wszystkich zdefiniowanych znaczników, uruchamiając git tag lub git tag -l.

Jeśli nie widać żadnych znaczników, spróbuj ściągam je wyraźnie:

git fetch --tags

Gdy masz tag chcesz, to sprawdzić, aby zacząć korzystać z tej wersji bazy kodu:

git checkout <name of tag>