| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 # Copyright 2008-2009, Google Inc. |  | 
| 2 |  | 
| 3 gclient is a tool for managing a modular checkout of source code |  | 
| 4 from multiple source code repositories.  It wraps underlying source |  | 
| 5 code management commands to provide support for distributing tree |  | 
| 6 updates, status commands, and diffs across multiple checked-out |  | 
| 7 working directories. |  | 
| 8 |  | 
| 9 |  | 
| 10 The gclient script is controlled by a ".gclient" file at the top |  | 
| 11 of a directory tree which will contain source code from multiple |  | 
| 12 locations.  A ".gclient" file is a Python script that defines a list |  | 
| 13 of "solutions" with the following format: |  | 
| 14 |  | 
| 15     solutions = [ |  | 
| 16       { "name"        : "src", |  | 
| 17         "url"         : "svn://svnserver/component/trunk/src", |  | 
| 18         "custom_deps" : { |  | 
| 19           # To use the trunk of a component instead of what's in DEPS: |  | 
| 20           #"component": "https://svnserver/component/trunk/", |  | 
| 21           # To exclude a component from your working copy: |  | 
| 22           #"data/really_large_component": None, |  | 
| 23         } |  | 
| 24       }, |  | 
| 25     ] |  | 
| 26 |  | 
| 27 A "solution" is a collection of component pieces of software that will |  | 
| 28 be checked out in a specific directory layout for building together. |  | 
| 29 |  | 
| 30 Each entry in the "solutions" list is defined by a Python dictionary |  | 
| 31 that contains the following items: |  | 
| 32 |  | 
| 33     name |  | 
| 34         The name of the directory in which the solution will be |  | 
| 35         checked out. |  | 
| 36 |  | 
| 37     url |  | 
| 38         The URL from which this solution will be checked out. |  | 
| 39         gclient expects that the checked-out solution will contain a |  | 
| 40         file named "DEPS" that in turn defines the specific pieces |  | 
| 41         that must be checked out to create the working directory |  | 
| 42         layout for building and developing the solution's software. |  | 
| 43 |  | 
| 44     deps_file |  | 
| 45         A string containing just the filename (not a path) of the file |  | 
| 46         in the solution dir to use as the list of dependencies. |  | 
| 47         This tag is optional, and defaults to "DEPS". |  | 
| 48 |  | 
| 49     custom_deps |  | 
| 50         A dictionary containing optional custom overrides for entries |  | 
| 51         in the solution's "DEPS" file.  This can be used to have |  | 
| 52         the local working directory *not* check out and update specific |  | 
| 53         components, or to sync the local working-directory copy of a |  | 
| 54         given component to a different specific revision, or a branch, |  | 
| 55         or the head of a tree. It can also be used to append new entries |  | 
| 56         that do not exist in the "DEPS" file. |  | 
| 57 |  | 
| 58 Within each checked-out solution, gclient expects to find a file |  | 
| 59 typically named "DEPS" (it actually uses the value of the 'deps_file' |  | 
| 60 key above) which defines the different component pieces of software |  | 
| 61 that must be checked out for the solution.  The "DEPS" file is a |  | 
| 62 Python script that defines a dictionary named "deps": |  | 
| 63 |  | 
| 64     deps = { |  | 
| 65       "src/outside" : "http://outside-server/trunk@1234", |  | 
| 66       "src/component" : "svn://svnserver/component/trunk/src@77829", |  | 
| 67       "src/relative" : "/trunk/src@77829", |  | 
| 68     } |  | 
| 69 |  | 
| 70 Each item in the "deps" dictionary consists of a key-value pair. |  | 
| 71 The key is the directory into which the component will be checked |  | 
| 72 out, relative to the directory containing the ".gclient" file. |  | 
| 73 The value is the URL from which that directory will be checked out. |  | 
| 74 If there is no address scheme (that is, no "http:" or "svn:" prefix), |  | 
| 75 then the value must begin with a slash and is treated relative to the |  | 
| 76 root of the solution's repository. |  | 
| 77 |  | 
| 78 The URL typically contains a specific revision or change number (as |  | 
| 79 appropriate for the underlying SCM system) to "freeze" the external |  | 
| 80 software at a specific, known state.  Alternatively, if there is no |  | 
| 81 revision or change number, the URL will track the latest changes on the |  | 
| 82 specific trunk or branch. |  | 
| OLD | NEW | 
|---|