Как получить код указанной версии тега 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>