Как получить код указанной версии тега Chromium из git?

Мне просто нужен код указанной версии Chromium, например, r69297, который является последней версией Chrome для разработчиков. я использую git, поэтому следую инструкции здесь: http://code.google.com/p/chromium/wiki/UsingGit однако, после того, как я синхронизирую весь код и просматриваю журнал фиксации, я не могу найти эту ревизию! Затем я подумал о теге и искал здесь. Как использовать git для проверки указанной версии Webkit? здесь я нашел, но после выполнения всех шагов и ожидания в течение довольно долгого времени, я все еще ничего не получаю. Git-репозиторий Chromium хранит информацию о тегах? как я могу получить их? Спасибо

2 ответа

Решение

Когда вопрос был задан, Chromium использовал SVN. В настоящее время git является основной системой VC, поэтому я буду использовать теги / хэши git вместо r#### ревизий.

В этом ответе я предполагаю, что вы уже настроили предварительные условия для сборки Chromium (включая начальную проверку). Если у вас его нет, следуйте руководству на http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html прежде чем продолжить. Вы можете пропустить gclient sync шаг, потому что вы все равно замените зависимости в следующих шагах.

Сценарий: я хочу применить патч поверх последней стабильной версии Chromium. Чтобы узнать последнюю стабильную сборку, просто посетите https://omahaproxy.appspot.com/. Согласно этой странице, последняя версия 38.0.2125.104. Если вы хотите увидеть предыдущие / следующие выпуски, посетите http://blink.lc/chromium/refs/ для просмотра тегов. Этот список тегов включает в себя невыпущенные версии, например, 38.0.2125.106 (последний номер сборки увеличивается, когда новые исправления применяются поверх базовой линии, идентифицируемой третьим числом).

# 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

ветви

Если вы не можете найти конкретный коммит, я бы проверил, находится ли он в ветке, отличной от "master". Когда вы впервые клонируете репозиторий, вы получаете только ветку "master". Вы можете запустить следующее, чтобы получить ветку, доступную в удаленном репозитории Chromium:

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

Очевидно, используйте правильное имя для удаленной ветви и назовите вашу локальную ветку как-то логично.

Теги

Когда вы клонируете репозиторий Git, вы должны получить все его теги по умолчанию. Вы можете получить список всех определенных тегов, запустив git tag или же git tag -l,

Если вы не видите никаких тегов, попробуйте извлечь их явно:

git fetch --tags

Если у вас есть нужный тег, проверьте его, чтобы начать использовать эту версию базы кода:

git checkout <name of tag>

Другие вопросы по тегам