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?
Odpowiedz
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
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>
Co masz na myśli, "Nadal nie otrzymuję nic"? Czy możesz pokazać wynik uruchomienia tych poleceń? –
@Jean Hominal: nic wyjścia. w drzewie git nie istnieje rewizja 69297, tylko r69298. – ayanamist
spróbuj użyć gitk, aby zobaczyć historię repozytorium Git - możesz odwołać się do dokładnego zatwierdzenia przez jego haszowanie –