Improve diagnostic message for wrong gclient config

BUG=591814
TEST=gclient sync prints the correct report locally
when config is wrong.

Review-Url: https://codereview.chromium.org/2018803002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@300671 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient.py b/gclient.py
index f1428c5..3569f8e 100755
--- a/gclient.py
+++ b/gclient.py
@@ -1233,12 +1233,19 @@
             dep.url, self.root_dir, dep.name, self.outbuf)
         actual_url = scm.GetActualRemoteURL(self._options)
         if actual_url and not scm.DoesRemoteURLMatch(self._options):
+          mirror = scm.GetCacheMirror()
+          if mirror:
+            mirror_string = '%s (exists=%s)' % (mirror.mirror_path,
+                                                mirror.exists())
+          else:
+            mirror_string = 'not used'
           raise gclient_utils.Error('''
 Your .gclient file seems to be broken. The requested URL is different from what
 is actually checked out in %(checkout_path)s.
 
 The .gclient file contains:
-%(expected_url)s (%(expected_scm)s)
+URL: %(expected_url)s (%(expected_scm)s)
+Cache mirror: %(mirror_string)s
 
 The local checkout in %(checkout_path)s reports:
 %(actual_url)s (%(actual_scm)s)
@@ -1250,6 +1257,7 @@
 '''  % {'checkout_path': os.path.join(self.root_dir, dep.name),
         'expected_url': dep.url,
         'expected_scm': gclient_scm.GetScmName(dep.url),
+        'mirror_string' : mirror_string,
         'actual_url': actual_url,
         'actual_scm': gclient_scm.GetScmName(actual_url)})