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
diff --git a/tests/gclient_scm_test.py b/tests/gclient_scm_test.py
index e33ee02..3dd175c 100755
--- a/tests/gclient_scm_test.py
+++ b/tests/gclient_scm_test.py
@@ -704,10 +704,10 @@
            '--ignore-externals'],
           cwd=self.root_dir,
           file_list=[])
-  
+
       gclient_scm.scm.SVN._CaptureInfo([], self.base_path+'/.'
           ).AndReturn({'Revision': 100})
-  
+
       self.mox.ReplayAll()
       scm = self._scm_wrapper(url=self.url, root_dir=self.root_dir,
                               relpath=self.relpath)
@@ -784,6 +784,7 @@
       self.force = False
       self.reset = False
       self.nohooks = False
+      self.no_history = False
       self.upstream = False
       self.cache_dir = None
       self.merge = False
@@ -1205,7 +1206,7 @@
 
   def checkstdout(self, expected):
     value = sys.stdout.getvalue()
-    sys.stdout.close() 
+    sys.stdout.close()
     # pylint: disable=E1101
     self.assertEquals(expected, strip_timestamps(value))