Add --no-history option to fetch and gclient for shallow clones.

Many people* have complained on chromium-dev about the long times
required to perform a full fetch over a DSL. This seems to be mostly
due to the huge size of chromium's history (~9 GB). On the other side,
not everybody is interested in downloading the full git history of
the projects. The size of git packs required to fetch a working HEAD
is one order of magnitude smaller (1.5 GB).
This change makes it possible to perform a shallow fetch (in a way
which is consistent with DEPS, leveraging git templates on clone),
reducing fetch times by 80% for those not interested in the history.

* See: 
[chromium-dev] "fetch chromium" keeps hanging/getting stuck on Windows 7
[chromium-dev] Initial checkout with git taking long
[chromium-dev] Trying to get latest source code fails when fetching
[chromium-dev] Gclient sync takes too long

BUG=228996

Review URL: https://codereview.chromium.org/437903002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@287606 0039d316-1c4b-4281-b951-d872f2087c98
When getting content for a moved file w/ history, don't convert newlines in output of 'git show'

BUG=339068

Review URL: https://codereview.chromium.org/442893003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@287615 0039d316-1c4b-4281-b951-d872f2087c98
Revert of Add --no-history option to fetch and gclient for shallow clones. (https://codereview.chromium.org/437903002/)

Reason for revert:
Broke the WebRTC waterfall:
http://build.chromium.org/p/tryserver.webrtc/builders/win/builds/3958/steps/gclient%20revert/logs/stdio

Original issue's description:
> Add --no-history option to fetch and gclient for shallow clones.
> 
> Many people* have complained on chromium-dev about the long times
> required to perform a full fetch over a DSL. This seems to be mostly
> due to the huge size of chromium's history (~9 GB). On the other side,
> not everybody is interested in downloading the full git history of
> the projects. The size of git packs required to fetch a working HEAD
> is one order of magnitude smaller (1.5 GB).
> This change makes it possible to perform a shallow fetch (in a way
> which is consistent with DEPS, leveraging git templates on clone),
> reducing fetch times by 80% for those not interested in the history.
> 
> * See: 
> [chromium-dev] "fetch chromium" keeps hanging/getting stuck on Windows 7
> [chromium-dev] Initial checkout with git taking long
> [chromium-dev] Trying to get latest source code fails when fetching
> [chromium-dev] Gclient sync takes too long
> 
> BUG=228996
> 
> Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=287606

TBR=iannucci@chromium.org,szager@chromium.org,wtc@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=228996

Review URL: https://codereview.chromium.org/440263002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@287637 0039d316-1c4b-4281-b951-d872f2087c98
Reland: Add --no-history option to fetch and gclient for shallow clones.

Original CL: https://codereview.chromium.org/440263002/

Many people* have complained on chromium-dev about the long times
required to perform a full fetch over a DSL. This seems to be mostly
due to the huge size of chromium's history (~9 GB). On the other side,
not everybody is interested in downloading the full git history of
the projects. The size of git packs required to fetch a working HEAD
is one order of magnitude smaller (1.5 GB).
This change makes it possible to perform a shallow fetch (in a way
which is consistent with DEPS, leveraging git templates on clone),
reducing fetch times by 80% for those not interested in the history.

* See:
[chromium-dev] "fetch chromium" keeps hanging/getting stuck on Windows 7
[chromium-dev] Initial checkout with git taking long
[chromium-dev] Trying to get latest source code fails when fetching
[chromium-dev] Gclient sync takes too long

BUG=228996
TBR=iannucci@chromium.org,szager@chromium.org,wtc@chromium.org

Review URL: https://codereview.chromium.org/440273002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@287793 0039d316-1c4b-4281-b951-d872f2087c98
Make fetch help display all known recipes.

R=agable@chromium.org
BUG=366884

Review URL: https://codereview.chromium.org/358203002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@287832 0039d316-1c4b-4281-b951-d872f2087c98
Add 'git cache fetch' subcommand.

If you're in a git checkout cloned from the git cache, this will:
  - Update the cache with the latest upstream commits.
  - Update the cwd with the latest commits from the cache.

For example:

> cd $HOME/workspace/chromium/src
> git cache fetch

R=agable@chromium.org,iannucci@chromium.org
BUG=

Review URL: https://codereview.chromium.org/440213005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@288140 0039d316-1c4b-4281-b951-d872f2087c98
Added support for relative paths for the .gclient cache_dir field.

R=iannucci@chromium.org
BUG=None
TEST=gclient sync with a relative and absolute "cache_dir"

Review URL: https://codereview.chromium.org/415713002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@288146 0039d316-1c4b-4281-b951-d872f2087c98
Change chromium fetch spec to use master as the git-svn ref.

R=vadimsh@chromium.org
BUG=366924

Review URL: https://codereview.chromium.org/450863002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@288205 0039d316-1c4b-4281-b951-d872f2087c98
Added hyphen-only options

Some options have words separated by underscores. Added options with
same name and underscores replaced by hyphens.

BUG=400953

Review URL: https://codereview.chromium.org/436963005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@288366 0039d316-1c4b-4281-b951-d872f2087c98
Update cpplint.py to r136.

The only difference compared to upstream[1] is the shebang line from
depot_tools.

[1] https://code.google.com/p/google-styleguide/source/browse/trunk/cpplint/cpplint.py?r=136

BUG=None

Review URL: https://codereview.chromium.org/460003003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@288783 0039d316-1c4b-4281-b951-d872f2087c98
win: Add recipe to package Pro toolchain

Previously https://codereview.chromium.org/284663003/, this was done
manually. This script attempts to automates that manual process.

R=iannucci@chromium.org
BUG=402543

Review URL: https://codereview.chromium.org/462913002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@288877 0039d316-1c4b-4281-b951-d872f2087c98
Allow chromium buildtools path to be overriden in the environment.

This is useful in certain (admittedly unsupported) cases 
when trying to use tools from depot_tools outside of a 
chrome repository.  In this particular case, I was trying 
to "git cl format" something that wasn't a chrome 
repository.

BUG=0

Review URL: https://codereview.chromium.org/472553003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@289412 0039d316-1c4b-4281-b951-d872f2087c98
Auto find tryserver master for git cl try

BUG=352461

TEST=local tests

Review URL: https://codereview.chromium.org/447363002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@289711 0039d316-1c4b-4281-b951-d872f2087c98
Discover git.bat even if git_cl.py is executed using relative path

This allows git_cl.py to be used without adding depot_tools to PATH

BUG=
R=iannucci@chromium.org

Review URL: https://codereview.chromium.org/471413003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@289992 0039d316-1c4b-4281-b951-d872f2087c98
Add expect_tests and testing_support to infra recipe.

For more better access :)

R=eseidel@chromium.org, stip@chromium.org
BUG=

Review URL: https://codereview.chromium.org/466923002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@290190 0039d316-1c4b-4281-b951-d872f2087c98
Non-destructive editing of git cache config.

R=agable@chromium.org,iannucci@chromium.org
BUG=

Review URL: https://codereview.chromium.org/485663003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@290665 0039d316-1c4b-4281-b951-d872f2087c98
Add --with_tags to enable git tag fetching.

Needed for chromeos ebuild.

BUG=chromium:376027
R=mmoss@chromium.org,hinoka@chromium.org

Review URL: https://codereview.chromium.org/490743002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@290683 0039d316-1c4b-4281-b951-d872f2087c98
Have git-cl try fail when used on a closed CL

R=phajdan.jr@chromium.org, rch@chromium.org

Review URL: https://codereview.chromium.org/494713003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@290844 0039d316-1c4b-4281-b951-d872f2087c98
Fix manpage creation error.

When running make_docs.sh, I get the error:
  asciidoc: FAILED: manpage document title is mandatory
  make: *** [git-cherry-pick-upload.xml] Error 1

I don't fully understand why, or why this hasn't come up before, but it
seems to be complaining about the formatting of "===" in
git-cherry-pick-upload.txt. This was with xmlto version 0.0.25 on
Precise.

R=iannucci@google.com

Review URL: https://codereview.chromium.org/489143003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@290939 0039d316-1c4b-4281-b951-d872f2087c98
Only check for clean repos when not (--force or --reset).

This allows cache_dir to be enabled on bots when the individual repo path has
changes (like android_tools, which has a bunch of generated, non-ignored .h
files)

R=agable@chromium.org, szager@chromium.org
BUG=

Review URL: https://codereview.chromium.org/488273003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@290943 0039d316-1c4b-4281-b951-d872f2087c98