how to get code of specified tag version of Chromium from git?

12,002

Solution 1

When the question was asked, Chromium used SVN. Nowadays, git is the primary VC system, so I will use git tags/hashes instead of r#### revisions.

In this answer, I assume that you have already set up the pre-requisites for building Chromium (including an initial checkout). If you don't have that one, follow the tutorial at http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html before continuing. You can skip the gclient sync step because you'll replace the dependencies anyway in the steps below.

Scenario: I want to apply a patch on top of the latest stable Chromium version. To find out the latest stable build, just visit https://omahaproxy.appspot.com/. According to that page, the latest version is 38.0.2125.104. If you want to see previous/next releases, visit http://blink.lc/chromium/refs/ for an overview of tags. This list of tags includes unreleased versions, e.g. 38.0.2125.106 (the last build number increases when new patches are applied on top of the baseline that is identifier by the third number).

# 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

Solution 2

Branches

If you can't find a particular commit, I'd check if it's in a branch other than "master". When you first clone a repository, you only get the "master" branch. You can run the following to checkout a branch available on the remote Chromium repository:

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

Obviously use the correct name for the remote branch and name your local branch something logical.

Tags

When you clone a Git repo, you should get all of its tags by default. You can get a list of all defined tags by running git tag or git tag -l.

If you don't see any tags, try fetching them explicitly:

git fetch --tags

Once you have the tag you want, check it out to start using that version of the code base:

git checkout <name of tag>

Share:
12,002

Related videos on Youtube

ayanamist
Author by

ayanamist

Updated on June 04, 2022

Comments

  • ayanamist
    ayanamist almost 2 years

    i just need code of specified version of Chromium like r69297 which is the latest dev version of Chrome. i use git so i follow the instruction here: http://code.google.com/p/chromium/wiki/UsingGit however, after i sync all the code, and review the commit log, i can't find this revision! then i thought about tag, and searched here. How to use git to checkout a specified version of Webkit? here i found, but after follow all the steps, and wait for quite a long long time, i still get nothing. does the git repository of chromium keep the tag information? how can i get them? thx

    • ayanamist
      ayanamist over 13 years
      @Jean Hominal: yes, i use it. there is no r69297. coomit message of git of chromium has a revision id of subversion.

Related