Marc-Antoine Ruel updated the page Get the Code. View the changes below.
Color key: Insertion | Deletion
The Chromium codebase consists of hundreds of thousands of files, which means that a checkout straight from the Subversion (SVN) repository can take a long time. To speed up the process, we have provided a tarball that you can use to bootstrap the download. Alternatively, you can skip the tarball and download straight from SVN (not recommended). If you know what you're doing, you can alternatively check out the source from git. Note: There is no advantage to checking out straight from SVN. The tarball includes SVN directories so that after you unpack the tarball, you can get up to the latest revision by using gclient sync.
If you just want to see the code without checking it out, you can browse SVN or use Google Code Search for Chromium.
If you only want to look at the source code on your own machine, you'll need at least 1.6 GB of hard drive space available. (Somewhat less for Linux, since it already has some of the dependencies installed.) If you want to build it, you will need just under 10 GB of space, including all the object files and executables.
Bootstrap using the tarballWarning: Using the tarball is usually a bad idea unless you know what you are doing.
This should give you a complete source tree. But if you have any problems, first check that you've installed any prerequisites listed on the build instructions for your platform. Bootstrap notes for Ubuntu:
Check out the sourcesYou'll use gclient / depot tools to download the Chromium code from its subversion repository. The first time you execute gclient, there will be a delay (a minute or so) while it updates the depot tools. Downloading the Chromium code takes about an hour.
The gclient config <url> step only needs to be run once to set up your working directory. It creates a .gclient file in your working directory that identifies the corresponding structure to pull from the repository. The gclient sync step creates several subdirectories. To update your tree in the future, you only need to run gclient sync from anywhere within your working directory.
NOTE: These instructions will pull a read-only tree. If you are a committer, and plan to make changes to source code, use the instructions given to you when you received commit access.
WindowsCygwin: It's easier if you install python, git and subversion first. Otherwise you'll get the depot_tools version which is Windows-native, not cygwin-native.
Mac OS X
Linux
Check out the source for a specific releaseUse the same steps for "Check out directly from SVN", except that as opposed to using gclient config on https://src.chromium.org/chrome/trunk/src, you need to do a checkout for the specific version of Chromium that you are interested in:
For example, if you wanted the source for build 5.0.330.0, the following command would be appropriate:
Staying Green most of the timeWhen running gclient config, you can specify a second URL to be referenced when doing updates. Instead of pulling the most recent revision, the version number at this URL will be queried, allowing you to track the "most recent green" revision so you can spend less time debugging other people's issues or running builds only to find out that the waterfall was red. Chromium has two of these URLs:Chromium continuous build
LKGR
SetupTo use one of these URLs, pass it when you run gclient config:$ cd ~/chromium $ gclient config https://src.chromium.org/chrome/trunk/src https://chromium-status.appspot.com/lkgr Now whenever you call gclient sync, it will only sync as far as the configured URL specifies. To over-ride this, pass the --head parameter to gclient, e.g.: gclient sync --head You can also add this directly to your .gclient file if you already have one:
solutions = [ Reducing the size of your checkoutYou can edit your .gclient file to avoid pulling down certain pieces of the checkout that you may not want. For example, inserting something like "custom_deps": {
"src/third_party/WebKit/LayoutTests": None, "src/content/test/data/layout_tests/LayoutTests": None,
"src/chrome/tools/test/reference_build/chrome_win": None, "src/chrome_frame/tools/test/reference_build/chrome_win": None,
"src/chrome/tools/test/reference_build/chrome_linux": None, "src/chrome/tools/test/reference_build/chrome_mac": None,
"src/third_party/hunspell_dictionaries": None, }, As of r48011, the following can definitely be removed if you just want to build Chromium:
src/third_party/WebKit/LayoutTests - All the WebKit layout tests. src/chrome/tools/test/reference_build/chrome_win - Windows reference build for performance testing.
src/chrome_frame/tools/test/reference_build/chrome_win - Chrome Frame reference build for performance testing. src/chrome/tools/test/reference_build/chrome_linux - Linux reference build for performance testing.
src/chrome/tools/test/reference_build/chrome_mac - Mac reference build for performance testing. src/third_party/hunspell_dictionaries - spellchecker dictionaries used for unit tests.
Update to the latest revisionThe first time you execute gclient, there will be a delay (a minute or so) while it updates the depot tools. How long the Chromium code update takes depends on how much has changed since you last updated (or since the bootstrap tarball was created).
gclient sync --revision src@####
and the DEPS file will make sure you get the other directories in their matching forms. Checking out subpart of the treeLet's say you want to checkout https://src.chromium.org/viewvc/chrome/trunk/src/chrome/common/extensions/docs/examples/tutorials/getstarted/, simply run:
Note the difference in the url, namely /viewvc/chrome was replaced with /svn. |
Go to page: Get the Code
-------------
You requested this notification from Google Sites. You can unsubscribe at any time.
Don''t want to get notification of your own changes? Change your settings.
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
We're now state three methods that are all discouraged unless you know things:- "download straight from SVN (not recommended)",- "If you know what you're doing, you can alternatively check out the source from git."- "Using the tarball is usually a bad idea unless you know what you are doing."
Do we still want to promote tarball at all? Perhaps we should move those instructions off this page if it is niche.
On Thu, Oct 18, 2012 at 9:29 AM, Vincent Scheib <sch...@chromium.org> wrote:
We're now state three methods that are all discouraged unless you know things:- "download straight from SVN (not recommended)",- "If you know what you're doing, you can alternatively check out the source from git."- "Using the tarball is usually a bad idea unless you know what you are doing."
Do we still want to promote tarball at all? Perhaps we should move those instructions off this page if it is niche.I can do a fresh svn checkout in 8 minutes on an SSD (on Windows!).Do we have stats on how often the tarball is downloaded? i.e. perhaps it's not worth the extra complexity for instructions/generation if it doesn't have a measurable decrease on sever load.
On Thu, Oct 18, 2012 at 12:42 PM, John Abd-El-Malek <j...@chromium.org> wrote:On Thu, Oct 18, 2012 at 9:29 AM, Vincent Scheib <sch...@chromium.org> wrote:
We're now state three methods that are all discouraged unless you know things:- "download straight from SVN (not recommended)",- "If you know what you're doing, you can alternatively check out the source from git."- "Using the tarball is usually a bad idea unless you know what you are doing."
Do we still want to promote tarball at all? Perhaps we should move those instructions off this page if it is niche.I can do a fresh svn checkout in 8 minutes on an SSD (on Windows!).Do we have stats on how often the tarball is downloaded? i.e. perhaps it's not worth the extra complexity for instructions/generation if it doesn't have a measurable decrease on sever load.well, obvious retorts: not everyone has an awesome network connection
nor awesome hardware.
Anecdotally, I had trouble with the tarball method last time I tried it too. I got it to work, but I had to manually fiddle with it a bit. Someone who doesn't have experience with svn error messages or doesn't understand the subrepository layout could find it confusing.
why is the tarball bootstrap a bad idea ? i used it recently (again) and it still worked fine for me. i unpacked it, ran gclient sync, made some changes, and uploaded them with gcl. i don't see why those instructions need a "unless you know what you're doing" warning.
-mike
On Thu, Oct 18, 2012 at 9:38 AM, Mike Frysinger <vap...@chromium.org> wrote:
why is the tarball bootstrap a bad idea ? i used it recently (again) and it still worked fine for me. i unpacked it, ran gclient sync, made some changes, and uploaded them with gcl. i don't see why those instructions need a "unless you know what you're doing" warning.
-mikeUnless you know the magic incantations (and they change based on situation), the tarball can regularly break whenever there is a library that is changed via DEPS (eg: used to be checked in and moved to DEPS or vice-versa).
The tarball method has fundamentally the same issues when someone gets 10,000 revisions behind - changes that may have been multiphase (land here, wait X days, land here, wait Y days, remove original change) are collapsed in weird and awkward ways.
Regenerating the tarball regularly (every 1000 revisions?) is one way to reduce the window of this, but it doesn't help anyone who downloaded/mirrored the old tarball, and it creates a lot of churn generating the tarballs.
I'm a fan of removing the tarball as a recommended method, as it still seems to be a source of problems for people judging by IRC, and through no fault of their own.
--
On Thu, Oct 18, 2012 at 10:08 AM, Nicolas Sylvain <nsyl...@chromium.org> wrote:Is that new(ish)? I've definitely seen several people on irc running
>
>
>
> On Thu, Oct 18, 2012 at 10:03 AM, Ryan Sleevi <rsl...@chromium.org> wrote:
>>
>>
>>
>> On Thu, Oct 18, 2012 at 9:38 AM, Mike Frysinger <vap...@chromium.org>
>> wrote:
>>>
>>> why is the tarball bootstrap a bad idea ? i used it recently (again) and
>>> it still worked fine for me. i unpacked it, ran gclient sync, made some
>>> changes, and uploaded them with gcl. i don't see why those instructions
>>> need a "unless you know what you're doing" warning.
>>> -mike
>>
>>
>>
>> Unless you know the magic incantations (and they change based on
>> situation), the tarball can regularly break whenever there is a library that
>> is changed via DEPS (eg: used to be checked in and moved to DEPS or
>> vice-versa).
>
> We regenerate the tarball nightly
into the problems rsleevi described.
Is the primary reason that we have tarballs to decrease svn server load or to reduce checkout time?
If the former, can you share how often it gets downloaded?
On Thu, Oct 18, 2012 at 9:38 AM, Mike Frysinger <vap...@chromium.org> wrote:
why is the tarball bootstrap a bad idea ? i used it recently (again) and it still worked fine for me. i unpacked it, ran gclient sync, made some changes, and uploaded them with gcl. i don't see why those instructions need a "unless you know what you're doing" warning.
Unless you know the magic incantations (and they change based on situation), the tarball can regularly break whenever there is a library that is changed via DEPS (eg: used to be checked in and moved to DEPS or vice-versa).The tarball method has fundamentally the same issues when someone gets 10,000 revisions behind - changes that may have been multiphase (land here, wait X days, land here, wait Y days, remove original change) are collapsed in weird and awkward ways.
I think the tarball, while useful, makes it harderoverall for people without any experience in the Chromium toolchain,
rather than easier.
if git can be fixed to do resumes of partial clones, then it will bean acceptable replacement for the tarball. but w/out that, being
pargmatic means supporting people who have flaky network connections
(either the last mile or to google infrastructure) which is absolutely
not feasible with git today. otherwise you cut off large populations
of potential contributors such as asia and south america.
mirror once chromiume finally finishes the migration ?i also guess you also plan on supporting indefinitely a git->svn
svn is dammit slow and awkward. Why keeps recommending it?
-mike
--